usage.go 607 B

123456789101112131415161718192021222324252627282930
  1. package jwk
  2. import "github.com/pkg/errors"
  3. func (k KeyUsageType) String() string {
  4. return string(k)
  5. }
  6. func (k *KeyUsageType) Accept(v interface{}) error {
  7. switch v := v.(type) {
  8. case KeyUsageType:
  9. switch v {
  10. case ForSignature, ForEncryption:
  11. *k = v
  12. return nil
  13. default:
  14. return errors.Errorf("invalid key usage type %s", v)
  15. }
  16. case string:
  17. switch v {
  18. case ForSignature.String(), ForEncryption.String():
  19. *k = KeyUsageType(v)
  20. return nil
  21. default:
  22. return errors.Errorf("invalid key usage type %s", v)
  23. }
  24. }
  25. return errors.Errorf("invalid value for key usage type %s", v)
  26. }