func (j *jws) HeaderAt(i int) jose.Header {
	return j.sb[i].unprotected
}
HeaderAt returns the JWS' unprotected Header.
|i| is the index of the unprotected Header.
package jws
import (
	"bytes"
	"encoding/json"
	"net/http"
	"strings"
	"github.com/SermoDigital/jose"
	"github.com/SermoDigital/jose/crypto"
)
type JWS interface {
	Payload() interface{}
	SetPayload(p interface{})
	Protected() jose.Protected
	ProtectedAt(i int) jose.Protected
	Header() jose.Header
	HeaderAt(i int) jose.Header
	Verify(key interface{}, method crypto.SigningMethod) error
	VerifyMulti(keys []interface{}, methods []crypto.SigningMethod, o *SigningOpts) error
	VerifyCallback(fn VerifyCallback, methods []crypto.SigningMethod, o *SigningOpts) error
	General(keys ...interface{}) ([]byte, error)
	Flat(key interface{}) ([]byte, error)
	Compact(key interface{}) ([]byte, error)
	IsJWT() bool
}
type jws struct {
	payload *payload
	plcache rawBase64
	clean   bool
	sb []sigHead
	isJWT bool
}
func (j *jws) Payload() interface{} {
	return j.payload.v
}
func (j *jws) SetPayload(val interface{}) {
	j.payload.v = val
}
func (j *jws) Protected() jose.Protected {
	return j.sb[0].protected
}
func (j *jws) ProtectedAt(i int) jose.Protected {
	return j.sb[i].protected
}
func (j *jws) Header() jose.Header {
	return j.sb[0].unprotected
}