github.com/hashicorp/vault/sdk@v0.13.0/helper/keysutil/consts.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package keysutil 5 6 import ( 7 "crypto" 8 "crypto/sha1" 9 "crypto/sha256" 10 "crypto/sha512" 11 "hash" 12 13 "golang.org/x/crypto/sha3" 14 ) 15 16 type HashType uint32 17 18 const ( 19 HashTypeNone HashType = iota 20 HashTypeSHA1 21 HashTypeSHA2224 22 HashTypeSHA2256 23 HashTypeSHA2384 24 HashTypeSHA2512 25 HashTypeSHA3224 26 HashTypeSHA3256 27 HashTypeSHA3384 28 HashTypeSHA3512 29 ) 30 31 //go:generate enumer -type=MarshalingType -trimprefix=MarshalingType -transform=snake 32 type MarshalingType uint32 33 34 const ( 35 _ MarshalingType = iota 36 MarshalingTypeASN1 37 MarshalingTypeJWS 38 ) 39 40 var ( 41 HashTypeMap = map[string]HashType{ 42 "none": HashTypeNone, 43 "sha1": HashTypeSHA1, 44 "sha2-224": HashTypeSHA2224, 45 "sha2-256": HashTypeSHA2256, 46 "sha2-384": HashTypeSHA2384, 47 "sha2-512": HashTypeSHA2512, 48 "sha3-224": HashTypeSHA3224, 49 "sha3-256": HashTypeSHA3256, 50 "sha3-384": HashTypeSHA3384, 51 "sha3-512": HashTypeSHA3512, 52 } 53 54 HashFuncMap = map[HashType]func() hash.Hash{ 55 HashTypeNone: nil, 56 HashTypeSHA1: sha1.New, 57 HashTypeSHA2224: sha256.New224, 58 HashTypeSHA2256: sha256.New, 59 HashTypeSHA2384: sha512.New384, 60 HashTypeSHA2512: sha512.New, 61 HashTypeSHA3224: sha3.New224, 62 HashTypeSHA3256: sha3.New256, 63 HashTypeSHA3384: sha3.New384, 64 HashTypeSHA3512: sha3.New512, 65 } 66 67 CryptoHashMap = map[HashType]crypto.Hash{ 68 HashTypeNone: 0, 69 HashTypeSHA1: crypto.SHA1, 70 HashTypeSHA2224: crypto.SHA224, 71 HashTypeSHA2256: crypto.SHA256, 72 HashTypeSHA2384: crypto.SHA384, 73 HashTypeSHA2512: crypto.SHA512, 74 HashTypeSHA3224: crypto.SHA3_224, 75 HashTypeSHA3256: crypto.SHA3_256, 76 HashTypeSHA3384: crypto.SHA3_384, 77 HashTypeSHA3512: crypto.SHA3_512, 78 } 79 80 MarshalingTypeMap = _MarshalingTypeNameToValueMap 81 )