1/* 2 * Copyright (c) 2025-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import cryptoFramework from "@ohos.security.cryptoFramework"; 17import utils from "./test_utils"; 18 19export function testMac() { 20 try { 21 let key = "1234567890"; 22 let keyBytes = utils.hexStrToUint8Array(key); 23 let data = "Hello World"; 24 let dataBytes = utils.stringToUint8Array(data); 25 let symKey = cryptoFramework.createSymKeyGenerator("HMAC").convertKeySync({ 26 data: keyBytes 27 }); 28 let mac = cryptoFramework.createMac("SHA256"); 29 mac.initSync(symKey); 30 mac.updateSync({ 31 data: dataBytes 32 }); 33 let output = mac.doFinalSync(); 34 let str = utils.uint8ArrayToHexStr(output.data); 35 console.log("HMAC algName: " + mac.algName); 36 console.log("HMAC-SHA256: " + str); 37 } 38 catch (err) { 39 console.error("HMAC-SHA256: " + err) 40 } 41} 42