Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

42 rindas
966 B

  1. package signers
  2. import (
  3. "crypto/md5"
  4. "fmt"
  5. "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
  6. )
  7. type StsTokenSigner struct {
  8. credential *credentials.StdTokenCredential
  9. }
  10. func (signer *StsTokenSigner) GetAccessKeyId() (string, error) {
  11. return signer.credential.AccessKeyId, nil
  12. }
  13. func (signer *StsTokenSigner) GetAccessKeyFrom() (string, error) {
  14. return signer.credential.AccessKeyFrom, nil
  15. }
  16. func (*StsTokenSigner) GetName() string {
  17. return "MD5"
  18. }
  19. func (signer *StsTokenSigner) Sign(stringToSign, secretSuffix string) string {
  20. secret := signer.credential.AccessKeySecret + secretSuffix
  21. return Md5(stringToSign, secret)
  22. }
  23. func NewStsTokenSigner(credential *credentials.StdTokenCredential) *StsTokenSigner {
  24. return &StsTokenSigner{
  25. credential: credential,
  26. }
  27. }
  28. func Md5(source, secret string) string {
  29. data := []byte(fmt.Sprintf("%s##%s", secret, source))
  30. has := md5.Sum(data)
  31. md5str := fmt.Sprintf("%x", has)
  32. return md5str
  33. }