1 /*
2 * Copyright (C) 2024 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
16 #include "native_common.h"
17
GetOhCryptoErrCode(HcfResult errCode)18 OH_Crypto_ErrCode GetOhCryptoErrCode(HcfResult errCode)
19 {
20 switch (errCode) {
21 case HCF_SUCCESS:
22 return CRYPTO_SUCCESS;
23 case HCF_INVALID_PARAMS:
24 return CRYPTO_INVALID_PARAMS;
25 case HCF_NOT_SUPPORT:
26 return CRYPTO_NOT_SUPPORTED;
27 case HCF_ERR_MALLOC:
28 return CRYPTO_MEMORY_ERROR;
29 default:
30 return CRYPTO_OPERTION_ERROR;
31 }
32 }
33
GetOhCryptoErrCodeNew(HcfResult errCode)34 OH_Crypto_ErrCode GetOhCryptoErrCodeNew(HcfResult errCode)
35 {
36 switch (errCode) {
37 case HCF_SUCCESS:
38 return CRYPTO_SUCCESS;
39 case HCF_INVALID_PARAMS:
40 return CRYPTO_PARAMETER_CHECK_FAILED;
41 case HCF_NOT_SUPPORT:
42 return CRYPTO_NOT_SUPPORTED;
43 case HCF_ERR_MALLOC:
44 return CRYPTO_MEMORY_ERROR;
45 default:
46 return CRYPTO_OPERTION_ERROR;
47 }
48 }
49
ReverseUint8Arr(uint8_t * data,size_t len)50 void ReverseUint8Arr(uint8_t *data, size_t len)
51 {
52 for (size_t i = 0; i < (len >> 1); ++i) {
53 uint8_t temp = data[i];
54 data[i] = data[len - 1 - i];
55 data[len - 1 - i] = temp;
56 }
57 }
58
59 #define NATIVE_BITS_SIZE 8
60
BigEndianArrToUint32(const uint8_t * data,size_t len)61 uint32_t BigEndianArrToUint32(const uint8_t *data, size_t len)
62 {
63 uint32_t value = 0;
64
65 for (size_t i = 0; i < len; ++i) {
66 value |= (uint32_t)(data[i] << ((sizeof(int32_t) - 1 - i) * NATIVE_BITS_SIZE));
67 }
68 return value;
69 }
70
Uint32TobigEndianArr(uint32_t value,uint8_t * data,size_t len)71 void Uint32TobigEndianArr(uint32_t value, uint8_t *data, size_t len)
72 {
73 for (size_t i = 0; i < len; ++i) {
74 data[i] = (value >> ((sizeof(uint32_t) - i - 1) * NATIVE_BITS_SIZE)) & 0xFF;
75 }
76 }
77