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  )