Skip to content

Commit 89181e1

Browse files
Full documentation about extending the plugin (#27)
* add docs Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * full intro Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * four classes to use in generics Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * engine Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * check registrar Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * finish 1st part Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * edit tree link Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Detailed explanations Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * finish Detailed explanations Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * example Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * special cases Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * translation Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * reorganization rules Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * translation Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * asserts and graphs Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * update main readme Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * mistakes Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * proofread language support Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * proofread detection rules Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * diagrams Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * disclaimer Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * architecture diagram Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Update docs/DETECTION_RULE_STRUCTURE.md Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Update docs/DETECTION_RULE_STRUCTURE.md Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Update docs/DETECTION_RULE_STRUCTURE.md Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * coherence Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Function3 footnote Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * clarifications Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix a rule Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * fix Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * final fix of detection_rule_structure Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> * Apply suggestions from code review Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com> Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> --------- Signed-off-by: Hugo Queinnec <hugo.queinnec@ibm.com> Co-authored-by: Nicklas Körtge <nicklas.koertge@protonmail.com>
1 parent e6d43fb commit 89181e1

File tree

11 files changed

+915
-7
lines changed

11 files changed

+915
-7
lines changed

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ in source code and generates [CBOM](https://cyclonedx.org/capabilities/cbom/).
1818
| Language | Cryptographic Library | Coverage |
1919
|----------|-----------------------------------------------------------------------------------------------|----------|
2020
| Java | [JCA](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) | 100% |
21-
| | [BouncyCastle](https://github.com/bcgit/bc-java) | 80% |
21+
| | [BouncyCastle](https://github.com/bcgit/bc-java) (*light-weight API*) | 100%[^1] |
2222
| Python | [pyca/cryptography](https://cryptography.io/en/latest/) | 100% |
2323

24-
> The plugin is designed so that it can be extended to support additional languages and recognition rules to support more libraries. Detailed instructions on how to add new languages and recognition rules will follow shortly.
24+
25+
[^1]: We only cover the BouncyCastle *light-weight API* according to [this specification](https://javadoc.io/static/org.bouncycastle/bctls-jdk14/1.75/specifications.html)
26+
27+
> [!NOTE]
28+
> The plugin is designed in a modular way so that it can be extended to support additional languages and recognition rules to support more libraries.
29+
> - To add support for another language or cryptography library, see [*Extending the Sonar Cryptography Plugin to add support for another language or cryptography library*](./docs/LANGUAGE_SUPPORT.md)
30+
> - If you just want to know more about the syntax for writing new detection rules, see [*Writing new detection rules for the Sonar Cryptography Plugin*](./docs/DETECTION_RULE_STRUCTURE.md)
2531
2632
## Installation
2733

docs/DETECTION_RULE_STRUCTURE.md

Lines changed: 324 additions & 0 deletions
Large diffs are not rendered by default.

docs/LANGUAGE_SUPPORT.md

Lines changed: 581 additions & 0 deletions
Large diffs are not rendered by default.

docs/images/architecture.png

1.21 MB
Loading

docs/images/graph.png

1.11 MB
Loading

docs/images/reorganization.png

221 KB
Loading

docs/images/translation.png

330 KB
Loading

java/src/main/java/com/ibm/plugin/rules/detection/bc/cipherparameters/BcKeyParameter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ private BcKeyParameter() {
4747
.withMethodParameter("int")
4848
.withMethodParameter("int")
4949
.shouldBeDetectedAs(new KeySizeFactory<>(Size.UnitType.BIT))
50-
.asChildOfParameterWithId(-1)
5150
.buildForContext(
5251
new AlgorithmParameterContext(AlgorithmParameterContext.Kind.KEY))
5352
.inBundle(() -> "BcKeyParameter")

java/src/main/java/com/ibm/plugin/translation/reorganizer/rules/AsymmetricBlockCipherReorganizer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,7 @@ private AsymmetricBlockCipherReorganizer() {
134134
(node, parent, roots) -> {
135135
INode oaepChild =
136136
node.getChildren()
137-
.get(OptimalAsymmetricEncryptionPadding.class)
138-
.deepCopy();
137+
.get(OptimalAsymmetricEncryptionPadding.class);
139138
INode messageDigestChild =
140139
node.getChildren().get(MessageDigest.class).deepCopy();
141140

java/src/main/java/com/ibm/plugin/translation/JavaMapperConfig.java renamed to java/src/main/java/com/ibm/plugin/translation/translator/JavaMapperConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* See the License for the specific language governing permissions and
1818
* limitations under the License.
1919
*/
20-
package com.ibm.plugin.translation;
20+
package com.ibm.plugin.translation.translator;
2121

2222
import com.ibm.mapper.configuration.Configuration;
2323
import javax.annotation.Nonnull;

java/src/main/java/com/ibm/plugin/translation/translator/JavaTranslator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.ibm.mapper.ITranslator;
2626
import com.ibm.mapper.model.*;
2727
import com.ibm.mapper.utils.DetectionLocation;
28-
import com.ibm.plugin.translation.JavaMapperConfig;
2928
import com.ibm.plugin.translation.translator.contexts.*;
3029
import java.util.List;
3130
import java.util.Map;

0 commit comments

Comments
 (0)