feat: initial commit
This commit is contained in:
49
main.go
Normal file
49
main.go
Normal file
@ -0,0 +1,49 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/pem"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/lestrrat-go/jwx/v2/jwk"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Read the JWK from standard input.
|
||||
jwkBytes, err := io.ReadAll(os.Stdin)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to read from stdin: %s", err)
|
||||
}
|
||||
|
||||
// Parse the JWK.
|
||||
key, err := jwk.ParseKey(jwkBytes)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to parse JWK: %s", err)
|
||||
}
|
||||
|
||||
// Get the public key.
|
||||
var rawPublicKey interface{}
|
||||
if err := key.Raw(&rawPublicKey); err != nil {
|
||||
log.Fatalf("failed to get raw public key: %s", err)
|
||||
}
|
||||
|
||||
// Encode the public key to PEM format. [4]
|
||||
pemBytes, err := jwk.EncodePEM(key)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to encode public key to PEM: %s", err)
|
||||
}
|
||||
|
||||
// Write the PEM encoded public key to standard output.
|
||||
block, _ := pem.Decode(pemBytes)
|
||||
if block == nil {
|
||||
log.Fatal("failed to decode PEM block")
|
||||
}
|
||||
|
||||
if err := pem.Encode(os.Stdout, block); err != nil {
|
||||
log.Fatalf("failed to write PEM block to stdout: %s", err)
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
}
|
Reference in New Issue
Block a user