Recipe Name:
Crypto: KeyAgreement: Guide on Approved Cryptographic Algorithm
Description:
This cryptographic algorithm is not recommended
Level:
marked_information
Language:
- java
Tags:
- security
- basic protection set
Documentation
Secure coding practices prescribe to use EDCH for KeyAgreements
.
It is not recommended to use cryptographic algorithms and modes with known problems. For KeyAgreements
ECDH is recommended.
KeyAgreement.getInstance("ECDH");
Recipe
id: scw:crypto:keyagreement-not-recommended version: 10 metadata: name: 'Crypto: KeyAgreement: Guide on Approved Cryptographic Algorithm' shortDescription: This cryptographic algorithm is not recommended level: marked_information language: java newCodeOnly: false scwCategory: broken_cryptography:use_of_insecuredeprecated_alogirthms enabled: true descriptionFile: Java/Crypto/descriptions/Insecure_key_agreement_algorithm.html tags: security;basic protection set search: methodcall: args: 1: type: java.lang.String value: stringified: matches: ^((?!(DiffieHellman|EC$|RSA|ECMQV|ECDH$)).)* name: getInstance declaration: type: javax.crypto.KeyAgreement availableFixes: - name: Use ECDH actions: - rewrite: to: '{{{ expressionElement }}}("ECDH")'