• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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