github.com/bigzoro/my_simplechain@v0.0.0-20240315012955-8ad0a2a29bb9/core/access_contoller/crypto/sdf/utils.go (about) 1 /* 2 Copyright (C) BABEC. All rights reserved. 3 Copyright (C) THL A29 Limited, a Tencent company. All rights reserved. 4 5 SPDX-License-Identifier: Apache-2.0 6 */ 7 8 package sdf 9 10 import "C" 11 import ( 12 "strings" 13 14 bccrypto "chainmaker.org/chainmaker/common/v2/crypto" 15 ) 16 17 /* util funcs */ 18 func CCharArrToGoSlice(buf []C.uchar) []byte { 19 var ret []byte 20 for i := 0; i < len(buf); i++ { 21 ret = append(ret, byte(buf[i])) 22 } 23 return ret 24 } 25 26 func convertToSDFKeyType(keyType bccrypto.KeyType) SDFKeyType { 27 keyTypeStr := bccrypto.KeyType2NameMap[keyType] 28 if strings.Contains(keyTypeStr, "RSA") { 29 return RSA 30 } else if strings.Contains(keyTypeStr, "SM2") { 31 return SM2 32 } else if strings.Contains(keyTypeStr, "ECC") || strings.Contains(keyTypeStr, "ECDSA") { 33 return ECDSA 34 } else if strings.Contains(keyTypeStr, "AES") { 35 return AES 36 } else if strings.Contains(keyTypeStr, "SM4") { 37 return SM4 38 } 39 40 return UNKNOWN 41 }