|  | package crypto | 
|  |  | 
|  | import ( | 
|  | "crypto" | 
|  | "encoding/json" | 
|  | "hash" | 
|  | "io" | 
|  | ) | 
|  |  | 
|  | func init() { | 
|  | crypto.RegisterHash(crypto.Hash(0), h) | 
|  | } | 
|  |  | 
|  | // h is passed to crypto.RegisterHash. | 
|  | func h() hash.Hash { | 
|  | return &f{Writer: nil} | 
|  | } | 
|  |  | 
|  | type f struct{ io.Writer } | 
|  |  | 
|  | // Sum helps implement the hash.Hash interface. | 
|  | func (_ *f) Sum(b []byte) []byte { return nil } | 
|  |  | 
|  | // Reset helps implement the hash.Hash interface. | 
|  | func (_ *f) Reset() {} | 
|  |  | 
|  | // Size helps implement the hash.Hash interface. | 
|  | func (_ *f) Size() int { return -1 } | 
|  |  | 
|  | // BlockSize helps implement the hash.Hash interface. | 
|  | func (_ *f) BlockSize() int { return -1 } | 
|  |  | 
|  | // Unsecured is the default "none" algorithm. | 
|  | var Unsecured = &SigningMethodNone{ | 
|  | Name: "none", | 
|  | Hash: crypto.Hash(0), | 
|  | } | 
|  |  | 
|  | // SigningMethodNone is the default "none" algorithm. | 
|  | type SigningMethodNone struct { | 
|  | Name string | 
|  | Hash crypto.Hash | 
|  | _    struct{} | 
|  | } | 
|  |  | 
|  | // Verify helps implement the SigningMethod interface. | 
|  | func (_ *SigningMethodNone) Verify(_ []byte, _ Signature, _ interface{}) error { | 
|  | return nil | 
|  | } | 
|  |  | 
|  | // Sign helps implement the SigningMethod interface. | 
|  | func (_ *SigningMethodNone) Sign(_ []byte, _ interface{}) (Signature, error) { | 
|  | return nil, nil | 
|  | } | 
|  |  | 
|  | // Alg helps implement the SigningMethod interface. | 
|  | func (m *SigningMethodNone) Alg() string { | 
|  | return m.Name | 
|  | } | 
|  |  | 
|  | // Hasher helps implement the SigningMethod interface. | 
|  | func (m *SigningMethodNone) Hasher() crypto.Hash { | 
|  | return m.Hash | 
|  | } | 
|  |  | 
|  | // MarshalJSON implements json.Marshaler. | 
|  | // See SigningMethodECDSA.MarshalJSON() for information. | 
|  | func (m *SigningMethodNone) MarshalJSON() ([]byte, error) { | 
|  | return []byte(`"` + m.Alg() + `"`), nil | 
|  | } | 
|  |  | 
|  | var _ json.Marshaler = (*SigningMethodNone)(nil) |