mirror of
https://github.com/zitadel/oidc.git
synced 2026-05-03 08:31:00 -05:00
a4ecfb1c09
# 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
28 lines
510 B
Go
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()
|
|
}
|