跳到主要内容

@security/no-unsafe-huks

此规则禁止在HUKS中使用不安全的加密模式ECB,不安全的摘要算法MD5、SHA1,填充算法NONE、PKCS1-V1_5。推荐使用HUKS的AES-GCM算法,详情参见:对称加解密算法

规则配置

// code-linter.json5
{
"rules": {
"@security/no-unsafe-huks": "warn"
}
}

选项

该规则无需配置额外选项。

正例

import {huks} from '@kit.UniversalKeystoreKit';
let keyAlias: string = 'keyAlias';
let properties: Array<huks.HuksParam> = [
{
tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
value: huks.HuksKeyAlg.HUKS_ALG_ECC
},
{
tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
value: huks.HuksKeySize.HUKS_ECC_KEY_SIZE_256
},
{
tag: huks.HuksTag.HUKS_TAG_PURPOSE,
value:
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN |
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
},
{
tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
value: huks.HuksCipherMode.HUKS_MODE_CBC
},
{
tag: huks.HuksTag.HUKS_TAG_DIGEST,
value: huks.HuksKeyDigest.HUKS_DIGEST_SHA256
},
{
tag: huks.HuksTag.HUKS_TAG_PADDING,
value: huks.HuksKeyPadding.HUKS_PADDING_PKCS7
}
];
let options: huks.HuksOptions = {
properties: properties
};
huks.generateKeyItem(keyAlias, options);

反例

import {huks} from '@kit.UniversalKeystoreKit';
let keyAlias: string = 'keyAlias';
let properties: Array<huks.HuksParam> = [
{
tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
value: huks.HuksKeyAlg.HUKS_ALG_ECC
},
{
tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
value: huks.HuksKeySize.HUKS_ECC_KEY_SIZE_256
},
{
tag: huks.HuksTag.HUKS_TAG_PURPOSE,
value:
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_SIGN |
huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
},
{
tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
value: huks.HuksCipherMode.HUKS_MODE_ECB
},
{
tag: huks.HuksTag.HUKS_TAG_DIGEST,
value: huks.HuksKeyDigest.HUKS_DIGEST_SHA1
},
{
tag: huks.HuksTag.HUKS_TAG_PADDING,
value: huks.HuksKeyPadding.HUKS_PADDING_NONE
}
];
let options: huks.HuksOptions = {
properties: properties
};
huks.generateKeyItem(keyAlias, options);

规则集

plugin:@security/all

Code Linter代码检查规则的配置指导请参考Code Linter代码检查