utils.go 654 B

123456789101112131415161718192021222324252627282930313233
  1. package zllauth1
  2. import (
  3. "crypto/rand"
  4. "fmt"
  5. "io"
  6. "strings"
  7. )
  8. func GenerateRandomJWTKey(length int) ([]byte, error) {
  9. buf := make([]byte, length)
  10. n, err := io.ReadFull(rand.Reader, buf)
  11. if err != nil {
  12. return []byte{}, err
  13. }
  14. if n != length {
  15. return []byte{}, fmt.Errorf("failed generate random jwt key with specified length")
  16. }
  17. return buf, nil
  18. }
  19. func SM2PubKeyCombine(x, y string) string {
  20. sb := strings.Builder{}
  21. lx, ly := len(x), len(y)
  22. lpx, lpy := 64-lx, 64-ly
  23. spx := strings.Repeat("0", lpx)
  24. spy := strings.Repeat("0", lpy)
  25. sb.WriteString(spx)
  26. sb.WriteString(x)
  27. sb.WriteString(spy)
  28. sb.WriteString(y)
  29. return sb.String()
  30. }