github.com/hashicorp/vault/sdk@v0.11.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 type MarshalingType uint32 32 33 const ( 34 _ = iota 35 MarshalingTypeASN1 MarshalingType = iota 36 MarshalingTypeJWS 37 ) 38 39 var ( 40 HashTypeMap = map[string]HashType{ 41 "none": HashTypeNone, 42 "sha1": HashTypeSHA1, 43 "sha2-224": HashTypeSHA2224, 44 "sha2-256": HashTypeSHA2256, 45 "sha2-384": HashTypeSHA2384, 46 "sha2-512": HashTypeSHA2512, 47 "sha3-224": HashTypeSHA3224, 48 "sha3-256": HashTypeSHA3256, 49 "sha3-384": HashTypeSHA3384, 50 "sha3-512": HashTypeSHA3512, 51 } 52 53 HashFuncMap = map[HashType]func() hash.Hash{ 54 HashTypeNone: nil, 55 HashTypeSHA1: sha1.New, 56 HashTypeSHA2224: sha256.New224, 57 HashTypeSHA2256: sha256.New, 58 HashTypeSHA2384: sha512.New384, 59 HashTypeSHA2512: sha512.New, 60 HashTypeSHA3224: sha3.New224, 61 HashTypeSHA3256: sha3.New256, 62 HashTypeSHA3384: sha3.New384, 63 HashTypeSHA3512: sha3.New512, 64 } 65 66 CryptoHashMap = map[HashType]crypto.Hash{ 67 HashTypeNone: 0, 68 HashTypeSHA1: crypto.SHA1, 69 HashTypeSHA2224: crypto.SHA224, 70 HashTypeSHA2256: crypto.SHA256, 71 HashTypeSHA2384: crypto.SHA384, 72 HashTypeSHA2512: crypto.SHA512, 73 HashTypeSHA3224: crypto.SHA3_224, 74 HashTypeSHA3256: crypto.SHA3_256, 75 HashTypeSHA3384: crypto.SHA3_384, 76 HashTypeSHA3512: crypto.SHA3_512, 77 } 78 79 MarshalingTypeMap = map[string]MarshalingType{ 80 "asn1": MarshalingTypeASN1, 81 "jws": MarshalingTypeJWS, 82 } 83 )