This commit is contained in:
kkb0318
2024-03-28 22:18:54 +09:00
parent bd650cadea
commit 476746b036
3 changed files with 36 additions and 12 deletions
+11 -3
View File
@@ -8,11 +8,11 @@ import (
)
type KeyPair struct {
PublicKey []byte
PrivateKey []byte
publicKey []byte
privateKey []byte
}
func createKeyPair() (*KeyPair, error) {
func CreateKeyPair() (*KeyPair, error) {
privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
return nil, err
@@ -38,3 +38,11 @@ func createKeyPair() (*KeyPair, error) {
pubPemBytes := pem.EncodeToMemory(&pubPem)
return &KeyPair{pubPemBytes, privPemBytes}, nil
}
func (k *KeyPair) PublicKey() []byte {
return k.publicKey
}
func (k *KeyPair) PrivateKey() []byte {
return k.privateKey
}
+3 -3
View File
@@ -14,13 +14,13 @@ import (
func TestReadKey(t *testing.T) {
t.Run("key pair check", func(t *testing.T) {
keyPair, err := createKeyPair()
keyPair, err := CreateKeyPair()
assert.NoError(t, err)
message := []byte("test message")
hashed := sha256.Sum256(message)
block, _ := pem.Decode(keyPair.PrivateKey)
block, _ := pem.Decode(keyPair.PrivateKey())
assert.NotNil(t, block, "failed to decode private key to PEM")
privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
@@ -29,7 +29,7 @@ func TestReadKey(t *testing.T) {
signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed[:])
assert.NoError(t, err, "failed to create signature")
block, _ = pem.Decode(keyPair.PublicKey)
block, _ = pem.Decode(keyPair.PublicKey())
assert.NotNil(t, block, "failed to decode public key to PEM")
pubKey, err := x509.ParsePKIXPublicKey(block.Bytes)
+22 -6
View File
@@ -1,17 +1,33 @@
package oidc
import (
"encoding/json"
"fmt"
"github.com/kkb0318/irsa-manager/internal/selfhosted"
)
type MyIdProvider struct {
keyPair *selfhosted.KeyPair
jwk *selfhosted.JWK
}
func (p *MyIdProvider) Discovery() []byte {
return []byte{}
return []byte{}
}
func (p *MyIdProvider) JWK() []byte {
return []byte{}
func (p *MyIdProvider) JWK() ([]byte, error) {
jsonData, err := json.MarshalIndent(p.jwk.GetKeys(), "", " ")
if err != nil {
return nil, fmt.Errorf("error marshalling JSON: %s", err.Error())
}
return jsonData, nil
}
func (p *MyIdProvider) Endpoint() []byte {
return []byte{}
return []byte{}
}
func NewMyIdProvider(keyPair *selfhosted.KeyPair, jwk *selfhosted.JWK) *MyIdProvider {
return &MyIdProvider{keyPair, jwk}
}