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  )