diff --git a/CryptoArchitectureKit/entry/src/main/ets/pages/HMACFailed.ets b/CryptoArchitectureKit/entry/src/main/ets/pages/HMACFailed.ets index cdb6b65a034c6574751620df4fa52cc6249b230d..2da8127b1e3e5491d0e93daa9fd1ca7e7f99cb93 100644 --- a/CryptoArchitectureKit/entry/src/main/ets/pages/HMACFailed.ets +++ b/CryptoArchitectureKit/entry/src/main/ets/pages/HMACFailed.ets @@ -12,12 +12,58 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { cryptoFramework } from '@kit.CryptoArchitectureKit'; + /* -* FAQ:HMAC加密报错:error: convert sym key failed +* FAQ:HMAC加密报错:Error message:convertSymKey key failed! */ // [Start HMACFailed] -let symKeyGenerator = cryptoFramework.createSymKeyGenerator('HMAC'); +import { cryptoFramework } from '@kit.CryptoArchitectureKit'; +import { buffer } from '@kit.ArkTS'; + +@Entry +@Component +struct HMACFailed { + // [StartExclude HMACFailed] + @State message: string = 'Hello World'; + // [EndExclude HMACFailed] + ConvertKeySync() { + // 对称密钥长度为28字节,224比特。 + let keyMessage = '87654321abcdefgh87654321abcd'; // 执行成功 + // 执行成功,key encoded data:56,55,54,53,52,51,50,49,97,98,99,100,101,102,103,104,56,55,54,53,52,51,50,49,97,98,99,100 + // 对称密钥长度为26字节,208比特。 + // let keyMessage = '87654321abcdefgh87654321ab'; // 执行失败 + // 执行失败,报错:Error message:convertSymKey key failed! + let keyBlob: cryptoFramework.DataBlob = { + data: new Uint8Array(buffer.from(keyMessage, 'utf-8').buffer) + } + // 消息认证码算法:HMAC,摘要算法:SHA224,密钥长度(bit):224,字符串参数:HMAC|SHA224 + let symKeyGenerator = cryptoFramework.createSymKeyGenerator('HMAC|SHA224'); + let key = symKeyGenerator.convertKeySync(keyBlob); + let encodedKey = key.getEncoded(); + console.info('key encoded data:' + encodedKey.data); + } + // [StartExclude HMACFailed] + build() { + RelativeContainer() { + Text(this.message) + .id('HelloWorld') + .fontSize($r('app.float.page_text_font_size')) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + .onClick(() => { + this.message = 'Welcome'; + this.ConvertKeySync(); + }) + } + .height('100%') + .width('100%') + } + // [EndExclude HMACFailed] +} + // [End HMACFailed]