github.com/dbernstein1/tyk@v2.9.0-beta9-dl-apic+incompatible/signature_validator/hash.go (about)

     1  package signature_validator
     2  
     3  import (
     4  	"crypto/md5"
     5  	"crypto/sha256"
     6  	"strconv"
     7  )
     8  
     9  type Hasher interface {
    10  	Name() string
    11  	Hash(token string, sharedSecret string, timeStamp int64) []byte
    12  }
    13  
    14  type MasherySha256Sum struct{}
    15  
    16  func (m MasherySha256Sum) Name() string {
    17  	return "MasherySHA256"
    18  }
    19  
    20  func (m MasherySha256Sum) Hash(token string, sharedSecret string, timeStamp int64) []byte {
    21  	signature := sha256.Sum256([]byte(token + sharedSecret + strconv.FormatInt(timeStamp, 10)))
    22  
    23  	return signature[:]
    24  }
    25  
    26  type MasheryMd5sum struct{}
    27  
    28  func (m MasheryMd5sum) Name() string {
    29  	return "MasheryMD5"
    30  }
    31  
    32  func (m MasheryMd5sum) Hash(token string, sharedSecret string, timeStamp int64) []byte {
    33  	signature := md5.Sum([]byte(token + sharedSecret + strconv.FormatInt(timeStamp, 10)))
    34  
    35  	return signature[:]
    36  }