Conversation
…to tob/quantum-csharp
…to tob/quantum-csharp
- Added support to get input consumers and output artifacts - Added padding and cipher mode algorithm instances, as well as dataflow to link these to `CryptoStream` key operations
…to tob/quantum-csharp
…to tob/quantum-csharp
…to tob/quantum-csharp
This commit also reorganizes the dotnet library to move utility classes into the private Cryptography module.
…to tob/quantum-csharp
|
@fegge Check out my test cases. I do 3 tests, nodes, node edges, and node properties. That should cover everything. Can you update the PR to do that kind of test? |
|
@fegge make sure to work with @nicolaswill to get all my PRs in first and double check if model updates on my part break anything. |
| /** | ||
| * An instance of random number generation, modelled as the expression | ||
| * tied to an output node (i.e., the RNG output) | ||
| */ |
Check warning
Code scanning / CodeQL
Misspelling Warning
| private import Cryptography | ||
| private import FlowAnalysis | ||
|
|
||
| class NamedCurveAlgorithmInstance extends Crypto::EllipticCurveInstance instanceof NamedCurvePropertyAccess |
Check warning
Code scanning / CodeQL
Suggest using non-extending subtype relationships. Warning
| ECParameters() { this.hasName("ECParameters") } | ||
| } | ||
|
|
||
| class RSAParameters extends CryptographyType { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| ECDsaClass() { this.hasName("ECDsa") } | ||
| } | ||
|
|
||
| private class RSAClass extends CryptographyType { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| RSAClass() { this.hasName("RSA") } | ||
| } | ||
|
|
||
| private class RSAPKCS1SignatureFormatter extends CryptographyType { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| override string getRawMACAlgorithmName() { result = super.getType().getName() } | ||
| } | ||
|
|
||
| class HMACAlgorithmQualifier extends Crypto::HMACAlgorithmInstance, Crypto::AlgorithmValueConsumer, |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
|
|
||
| module AeadFlow = CreationToUseFlow<AeadCreation, AeadUse>; | ||
|
|
||
| module HMACFlow = CreationToUseFlow<HMACCreation, MacUse>; |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
| } | ||
|
|
||
| module SigningCreateToUseFlow { | ||
| private module SigningCreateToUseFlow implements DataFlow::ConfigSig { |
Check warning
Code scanning / CodeQL
Data flow configuration module naming Warning
| /** | ||
| * An additional flow step across new object creations that use the original objects. | ||
| * | ||
| * Example: | ||
| * ``` | ||
| * RSA rsa = RSA.Create() | ||
| * RSAPKCS1SignatureFormatter rsaFormatter = new(rsa); | ||
| * rsaFormatter.SetHashAlgorithm(nameof(SHA256)); | ||
| * signedHash = rsaFormatter.CreateSignature(hash); | ||
| * ``` | ||
| */ |
Check warning
Code scanning / CodeQL
Predicate QLDoc style. Warning
| } | ||
| } | ||
|
|
||
| class HMACOperationInstance extends Crypto::MACOperationInstance instanceof MacUse { |
Check warning
Code scanning / CodeQL
Acronyms should be PascalCase/camelCase. Warning
This PR adds support for parts of the .NET cryptographic libraries. Currently, it contains QL libraries and tests for