How to use makePublicKey method of x509 Package

Best K6 code snippet using x509.makePublicKey

x509.go

Source:x509.go Github

copy

Full Screen

...154 }155 return parsed, nil156}157func makeCertificate(parsed *x509.Certificate) (Certificate, error) {158 publicKey, err := makePublicKey(parsed.PublicKey)159 if err != nil {160 return Certificate{}, err161 }162 return Certificate{163 Subject: makeSubject(parsed.Subject),164 Issuer: makeIssuer(parsed.Issuer),165 NotBefore: iso8601(parsed.NotBefore),166 NotAfter: iso8601(parsed.NotAfter),167 AltNames: altNames(parsed),168 SignatureAlgorithm: signatureAlgorithm(parsed.SignatureAlgorithm),169 FingerPrint: fingerPrint(parsed),170 PublicKey: publicKey,171 }, nil172}173func makeSubject(subject pkix.Name) Subject {174 return Subject{175 CommonName: subject.CommonName,176 Country: first(subject.Country),177 PostalCode: first(subject.PostalCode),178 StateOrProvinceName: first(subject.Province),179 LocalityName: first(subject.Locality),180 StreetAddress: first(subject.StreetAddress),181 OrganizationName: first(subject.Organization),182 OrganizationalUnitName: subject.OrganizationalUnit,183 Names: makeRdns(subject.Names),184 }185}186func makeIssuer(issuer pkix.Name) Issuer {187 return Issuer{188 CommonName: issuer.CommonName,189 Country: first(issuer.Country),190 StateOrProvinceName: first(issuer.Province),191 LocalityName: first(issuer.Locality),192 OrganizationName: first(issuer.Organization),193 Names: makeRdns(issuer.Names),194 }195}196func makePublicKey(parsed interface{}) (PublicKey, error) {197 var algorithm string198 switch parsed.(type) {199 case *dsa.PublicKey:200 algorithm = "DSA"201 case *ecdsa.PublicKey:202 algorithm = "ECDSA"203 case *rsa.PublicKey:204 algorithm = "RSA"205 default:206 err := errors.New("unsupported public key algorithm")207 return PublicKey{}, err208 }209 return PublicKey{210 Algorithm: algorithm,...

Full Screen

Full Screen

upstream_client_test.go

Source:upstream_client_test.go Github

copy

Full Screen

...108func TestUpstreamClientPublishJWTKey_HandlesBundleUpdates(t *testing.T) {109 client, updater, ua := setUpUpstreamClientTest(t, fakeupstreamauthority.Config{110 TrustDomain: trustDomain,111 })112 key1 := makePublicKey(t, "KEY1")113 key2 := makePublicKey(t, "KEY2")114 jwtKeys, err := client.PublishJWTKey(context.Background(), key1)115 require.NoError(t, err)116 spiretest.RequireProtoListEqual(t, jwtKeys, ua.JWTKeys())117 // Assert that the initial bundle update happened.118 spiretest.RequireProtoListEqual(t, []*common.PublicKey{key1}, updater.WaitForAppendedJWTKeys(t))119 // Now trigger an update to the bundle by appending another key and wait120 // for the bundle to receive the update.121 ua.AppendJWTKey(key2)122 spiretest.RequireProtoListEqual(t, []*common.PublicKey{key1, key2}, updater.WaitForAppendedJWTKeys(t))123}124func TestUpstreamClientPublishJWTKey_NotImplemented(t *testing.T) {125 client, _, _ := setUpUpstreamClientTest(t, fakeupstreamauthority.Config{126 TrustDomain: trustDomain,127 DisallowPublishJWTKey: true,128 })129 jwtKeys, err := client.PublishJWTKey(context.Background(), makePublicKey(t, "KEY"))130 spiretest.RequireGRPCStatus(t, err, codes.Unimplemented, "upstreamauthority(fake): disallowed")131 require.Nil(t, jwtKeys)132}133func setUpUpstreamClientTest(t *testing.T, config fakeupstreamauthority.Config) (*ca.UpstreamClient, *fakeBundleUpdater, *fakeupstreamauthority.UpstreamAuthority) {134 plugin, upstreamAuthority := fakeupstreamauthority.Load(t, config)135 updater := newFakeBundleUpdater()136 client := ca.NewUpstreamClient(ca.UpstreamClientConfig{137 UpstreamAuthority: plugin,138 BundleUpdater: updater,139 })140 t.Cleanup(func() {141 assert.NoError(t, client.Close())142 })143 return client, updater, upstreamAuthority144}145type bundleUpdateErr struct {146 err error147 msg string148}149type fakeBundleUpdater struct {150 x509RootsCh chan []*x509.Certificate151 jwtKeysCh chan []*common.PublicKey152 errorCh chan bundleUpdateErr153}154func newFakeBundleUpdater() *fakeBundleUpdater {155 return &fakeBundleUpdater{156 x509RootsCh: make(chan []*x509.Certificate, 1),157 jwtKeysCh: make(chan []*common.PublicKey, 1),158 errorCh: make(chan bundleUpdateErr, 1),159 }160}161func (u *fakeBundleUpdater) AppendX509Roots(ctx context.Context, x509Roots []*x509.Certificate) error {162 select {163 case u.x509RootsCh <- x509Roots:164 return nil165 case <-ctx.Done():166 return ctx.Err()167 }168}169func (u *fakeBundleUpdater) WaitForAppendedX509Roots(t *testing.T) []*x509.Certificate {170 select {171 case <-time.After(time.Minute):172 require.FailNow(t, "timed out waiting for X.509 roots to be appended")173 return nil // unreachable174 case x509Roots := <-u.x509RootsCh:175 return x509Roots176 }177}178func (u *fakeBundleUpdater) AppendJWTKeys(ctx context.Context, jwtKeys []*common.PublicKey) ([]*common.PublicKey, error) {179 select {180 case u.jwtKeysCh <- jwtKeys:181 return jwtKeys, nil182 case <-ctx.Done():183 return nil, ctx.Err()184 }185}186func (u *fakeBundleUpdater) WaitForAppendedJWTKeys(t *testing.T) []*common.PublicKey {187 select {188 case <-time.After(time.Minute):189 require.FailNow(t, "timed out waiting for JWT keys to be appended")190 return nil // unreachable191 case jwtKeys := <-u.jwtKeysCh:192 return jwtKeys193 }194}195func (u *fakeBundleUpdater) LogError(err error, msg string) {196 e := bundleUpdateErr{197 err: err,198 msg: msg,199 }200 select {201 case u.errorCh <- e:202 default:203 }204}205func (u *fakeBundleUpdater) WaitForError(t *testing.T) (msg string, err error) {206 select {207 case <-time.After(time.Minute):208 require.FailNow(t, "timed out waiting for error to be logged")209 return "", nil // unreachable210 case e := <-u.errorCh:211 return e.msg, e.err212 }213}214func makePublicKey(t *testing.T, kid string) *common.PublicKey {215 key := testkey.NewEC256(t)216 pkixBytes, err := x509.MarshalPKIXPublicKey(key.Public())217 require.NoError(t, err)218 return &common.PublicKey{219 Kid: kid,220 PkixBytes: pkixBytes,221 }222}...

Full Screen

Full Screen

makePublicKey

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 keyBytes, err := ioutil.ReadFile("private_key.pem")4 if err != nil {5 panic(err)6 }7 key, _ := pem.Decode(keyBytes)8 rsaPrivateKey, err := x509.ParsePKCS1PrivateKey(key.Bytes)9 if err != nil {10 panic(err)11 }12 publicKeyPKCS1, err := x509.MarshalPKCS1PublicKey(&publicKey)13 if err != nil {14 panic(err)15 }16 err = ioutil.WriteFile("public_key.pem", publicKeyPKCS1, 0644)17 if err != nil {18 panic(err)19 }20 fmt.Println("Public key written to public_key.pem")21}22import (23func main() {24 keyBytes, err := ioutil.ReadFile("private_key.pem")25 if err != nil {26 panic(err)27 }28 key, _ := pem.Decode(keyBytes)29 rsaPrivateKey, err := x509.ParsePKCS1PrivateKey(key.Bytes)30 if err != nil {31 panic(err)32 }33 publicKeyPKIX, err := x509.MarshalPKIXPublicKey(&publicKey)34 if err != nil {35 panic(err)36 }37 err = ioutil.WriteFile("public_key.pem", publicKeyPKIX, 0644)38 if err != nil {39 panic(err)40 }41 fmt.Println("Public key written to public_key.pem")42}

Full Screen

Full Screen

makePublicKey

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 privKey, err := ioutil.ReadFile("private.pem")4 if err != nil {5 fmt.Println("Unable to read private key file")6 }7 decodedKey, _ := pem.Decode(privKey)8 parsedKey, err := x509.ParsePKCS1PrivateKey(decodedKey.Bytes)9 if err != nil {10 fmt.Println("Unable to parse private key")11 }12 pemData := pem.EncodeToMemory(&pem.Block{13 Bytes: x509.MarshalPKCS1PublicKey(&publicKey),14 })15 err = ioutil.WriteFile("public.pem", pemData, 0644)16 if err != nil {17 fmt.Println("Unable to write public key to file")18 }19}

Full Screen

Full Screen

makePublicKey

Using AI Code Generation

copy

Full Screen

1func main() {2 priv, err := rsa.GenerateKey(rand.Reader, 2048)3 if err != nil {4 }5 der, err := x509.MarshalPKIXPublicKey(&pub)6 if err != nil {7 }8 block := pem.Block{9 }10 pem.Encode(os.Stdout, &block)11}12func main() {13 privBytes, err := ioutil.ReadFile("private.pem")14 if err != nil {15 }16 priv, err := x509.ParsePKCS1PrivateKey(privBytes)17 if err != nil {18 }19 der, err := x509.MarshalPKIXPublicKey(&pub)20 if err != nil {21 }22 block := pem.Block{23 }24 pem.Encode(os.Stdout, &block)25}26func main() {27 privBytes, err := ioutil.ReadFile("private.pem")28 if err != nil {29 }30 priv, err := x509.ParsePKCS1PrivateKey(privBytes)31 if err != nil {32 }

Full Screen

Full Screen

makePublicKey

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 keyData, err := ioutil.ReadFile("public_key.pem")4 if err != nil {5 log.Fatal(err)6 }7 block, _ := pem.Decode(keyData)8 if block == nil {9 log.Fatal("failed to parse PEM block containing the public key")10 }11 pub, err := x509.ParsePKIXPublicKey(block.Bytes)12 if err != nil {13 log.Fatal(err)14 }15 fmt.Println(pub)16}17&{[48 130 2 47 48 13 6 9 42 134 72 134 247 13 1 1 1 5 0 3 130 2 33 0 48 130 2 29 2 130 2 1 0 183 77 206 100 221 223 51 200 24 252 170 248 197 82 223 68 43 108 94 86 162 139 179 219 1 53 185 213 90 4 72 153 196 163 242 48 24 177 218 225 122 10 106 62 123 50 232 155 214 138 76 207 226 57 232 10 150 128 111 9 223 75 254 148 205 103 249 195 103 190 178 102 233 58 168 182 99 178 13 105 23 206 128 115 118 160 107 148 137 163 154 65 9 231 75 245 3 34 44 103 229 214 21 255 40 175 220 99 28 141 144 192 69 230 2 3 1 0 1]}

Full Screen

Full Screen

makePublicKey

Using AI Code Generation

copy

Full Screen

1import (2func main() {3pubKey, err := ioutil.ReadFile("publicKey.pem")4if err != nil {5fmt.Println(err)6}7block, _ := pem.Decode(pubKey)8if block == nil {9fmt.Println("failed to parse PEM block containing the public key")10}11pub, err := x509.ParsePKIXPublicKey(block.Bytes)12if err != nil {13fmt.Println(err)14}15fmt.Println(pub)16}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful