MCPcopy
hub / github.com/smallstep/cli / Test_parseECDSA

Function Test_parseECDSA

internal/sshutil/sshutil_test.go:15–119  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

13)
14
15func Test_parseECDSA(t *testing.T) {
16 t.Run("p256", func(t *testing.T) {
17 k, err := keyutil.GenerateKey("EC", "P-256", 0)
18 require.NoError(t, err)
19
20 ek := k.(*ecdsa.PrivateKey)
21 pub, err := ssh.NewPublicKey(ek.Public())
22 require.NoError(t, err)
23 require.Equal(t, "ecdsa-sha2-nistp256", pub.Type())
24
25 got, err := parseECDSA(pub.Marshal())
26 require.NoError(t, err)
27
28 require.Equal(t, elliptic.P256(), got.Curve)
29 require.True(t, got.Equal(ek.Public()))
30 })
31
32 t.Run("p384", func(t *testing.T) {
33 k, err := keyutil.GenerateKey("EC", "P-384", 0)
34 require.NoError(t, err)
35
36 ek := k.(*ecdsa.PrivateKey)
37 pub, err := ssh.NewPublicKey(ek.Public())
38 require.NoError(t, err)
39 require.Equal(t, "ecdsa-sha2-nistp384", pub.Type())
40
41 got, err := parseECDSA(pub.Marshal())
42 require.NoError(t, err)
43
44 require.Equal(t, elliptic.P384(), got.Curve)
45 require.True(t, got.Equal(ek.Public()))
46 })
47
48 t.Run("p521", func(t *testing.T) {
49 k, err := keyutil.GenerateKey("EC", "P-521", 0)
50 require.NoError(t, err)
51
52 ek := k.(*ecdsa.PrivateKey)
53 pub, err := ssh.NewPublicKey(ek.Public())
54 require.NoError(t, err)
55 require.Equal(t, "ecdsa-sha2-nistp521", pub.Type())
56
57 got, err := parseECDSA(pub.Marshal())
58 require.NoError(t, err)
59
60 require.Equal(t, elliptic.P521(), got.Curve)
61 require.True(t, got.Equal(ek.Public()))
62 })
63
64 t.Run("unmarshal-error", func(t *testing.T) {
65 k, err := keyutil.GenerateKey("EC", "P-256", 0)
66 require.NoError(t, err)
67
68 ek := k.(*ecdsa.PrivateKey)
69 pub, err := ssh.NewPublicKey(ek.Public())
70 require.NoError(t, err)
71 require.Equal(t, "ecdsa-sha2-nistp256", pub.Type())
72

Callers

nothing calls this directly

Calls 5

parseECDSAFunction · 0.85
TypeMethod · 0.80
RunMethod · 0.65
PublicMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…