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  }