mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
27 lines
679 B
Go
27 lines
679 B
Go
package orm
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-webauthn/webauthn/protocol/webauthncose"
|
|
)
|
|
|
|
// ExtractWebAuthnPublicKey parses the raw public key bytes and returns a JWK representation
|
|
func ExtractWebAuthnPublicKey(keyBytes []byte) (*JWK, error) {
|
|
key, err := webauthncose.ParsePublicKey(keyBytes)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to parse public key: %w", err)
|
|
}
|
|
|
|
switch k := key.(type) {
|
|
case *webauthncose.EC2PublicKeyData:
|
|
return FormatEC2PublicKey(k)
|
|
case *webauthncose.RSAPublicKeyData:
|
|
return FormatRSAPublicKey(k)
|
|
case *webauthncose.OKPPublicKeyData:
|
|
return FormatOKPPublicKey(k)
|
|
default:
|
|
return nil, fmt.Errorf("unsupported key type")
|
|
}
|
|
}
|