Files
oidc/pkg/crypto/sign.go
T
Wim Van Laer a4ecfb1c09 Merge branch 'main' into merge-main
# Conflicts:
#	README.md
#	example/client/app/app.go
#	example/server/exampleop/op.go
#	example/server/main.go
#	pkg/client/client.go
#	pkg/client/rp/relying_party.go
#	pkg/client/rp/relying_party_test.go
#	pkg/client/tokenexchange/tokenexchange.go
#	pkg/crypto/key_test.go
#	pkg/oidc/token.go
#	pkg/oidc/verifier.go
#	pkg/op/auth_request.go
#	pkg/op/device.go
#	pkg/op/server_http_routes_test.go
#	pkg/op/token.go
#	pkg/op/token_refresh.go
2025-11-28 11:19:02 +01:00

28 lines
510 B
Go

package crypto
import (
"encoding/json"
"errors"
"github.com/go-jose/go-jose/v4"
)
func Sign(object any, signer jose.Signer) (string, error) {
payload, err := json.Marshal(object)
if err != nil {
return "", err
}
return SignPayload(payload, signer)
}
func SignPayload(payload []byte, signer jose.Signer) (string, error) {
if signer == nil {
return "", errors.New("missing signer")
}
result, err := signer.Sign(payload)
if err != nil {
return "", err
}
return result.CompactSerialize()
}