C#


CSHARP.HARDCODED.KEY : Hardcoded Cryptographic Key (C#)

Summary

A hardcoded cryptographic key is used.

Properties

Class Name Hardcoded Cryptographic Key (C#)
Significance security
Mnemonic CSHARP.HARDCODED.KEY
Categories
CWE CWE:321 Use of Hard-coded Cryptographic Key
Availability Available for C# only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Hardcoded Cryptographic Key (C#)"

Example

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace Hard_Coded_Cryptographic_Key {

    class Hard_Coded_Cryptographic_Key {

        public void MyMethod() {
            string data = "568f{_62@!a";
            string stringToEncrypt = "My secret";
            byte[] byteCipherText = null;
        
            using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) {
                ICryptoTransform encryptor = aes.CreateEncryptor(Encoding.UTF8.GetBytes(data), aes.IV);  // 'Hardcoded Cryptographic Key (C#)' warning issued here
                // ...
            }
        }
    }
}

Resolution

Avoid hardcoded keys: use a secure key generator instead.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.