Skip to content

Commit 2ef1591

Browse files
GODRIVER-3445 Resolve conflict in spectest
1 parent 5ef2244 commit 2ef1591

File tree

73 files changed

+8840
-52
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+8840
-52
lines changed

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[submodule "specifications"]
2-
path = testdata
2+
path = testdata/specifications
33
url = https://github.com/mongodb/specifications

internal/serverselector/server_selector_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func compareServers(t *testing.T, expected []*serverDesc, actual []description.S
157157
}
158158
}
159159

160-
const maxStalenessTestsDir = "../../testdata/max-staleness"
160+
var maxStalenessTestsDir = spectest.TestPath(2, "max-staleness")
161161

162162
// Test case for all max staleness spec tests.
163163
func TestMaxStalenessSpec(t *testing.T) {
@@ -176,7 +176,7 @@ func TestMaxStalenessSpec(t *testing.T) {
176176
}
177177
}
178178

179-
const selectorTestsDir = "../../testdata/server-selection/server_selection"
179+
var selectorTestsDir = spectest.TestPath(2, "server-selection")
180180

181181
func selectServers(t *testing.T, test *testCase) error {
182182
servers := make([]description.Server, 0, len(test.TopologyDescription.Servers))
@@ -321,7 +321,7 @@ func TestServerSelectionSpec(t *testing.T) {
321321
"LoadBalanced",
322322
} {
323323
for _, subdir := range [...]string{"read", "write"} {
324-
subdirPath := path.Join(topology, subdir)
324+
subdirPath := path.Join("server_selection", topology, subdir)
325325

326326
for _, file := range spectest.FindJSONFilesInDir(t,
327327
path.Join(selectorTestsDir, subdirPath)) {

internal/spectest/skip.go

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import "testing"
1212
// the test".
1313
var skipTests = map[string]string{
1414
"TestURIOptionsSpec/single-threaded-options.json/Valid_options_specific_to_single-threaded_drivers_are_parsed_correctly": "The Go Driver is not single-threaded.",
15-
// GODRIVER-2348: The wtimeoutMS write concern option is not supported.
16-
"TestURIOptionsSpec/concern-options.json/Valid_read_and_write_concern_are_parsed_correctly": "The wtimeoutMS write concern option is not supported",
1715

1816
// SPEC-1403: This test checks to see if the correct error is thrown when
1917
// auto encrypting with a server < 4.2. Currently, the test will fail
@@ -152,6 +150,81 @@ var skipTests = map[string]string{
152150
"TestUnifiedSpec/server-discovery-and-monitoring/unified/sharded-emit-topology-changed-before-close.json/Topology_lifecycle": "Implement GODRIVER-2967",
153151
"TestUnifiedSpec/server-discovery-and-monitoring/unified/replicaset-emit-topology-changed-before-close.json/Topology_lifecycle": "Implement GODRIVER-2967",
154152
"TestUnifiedSpec/server-discovery-and-monitoring/unified/standalone-emit-topology-changed-before-close.json/Topology_lifecycle": "Implement GODRIVER-2967",
153+
154+
// TODO(GODRIVER-2183): Socks5 Proxy Support.
155+
"TestURIOptionsSpec/proxy-options.json/proxyPort_without_proxyHost": "Implement GODRIVER-2183 for Socks5 Proxy Support",
156+
"TestURIOptionsSpec/proxy-options.json/proxyUsername_without_proxyHost": "Implement GODRIVER-2183 for Socks5 Proxy Support",
157+
"TestURIOptionsSpec/proxy-options.json/proxyPassword_without_proxyHost": "Implement GODRIVER-2183 for Socks5 Proxy Support",
158+
"TestURIOptionsSpec/proxy-options.json/all_other_proxy_options_without_proxyHost": "Implement GODRIVER-2183 for Socks5 Proxy Support",
159+
"TestURIOptionsSpec/proxy-options.json/proxyUsername_without_proxyPassword": "Implement GODRIVER-2183 for Socks5 Proxy Support",
160+
"TestURIOptionsSpec/proxy-options.json/proxyPassword_without_proxyUsername": "Implement GODRIVER-2183 for Socks5 Proxy Support",
161+
"TestURIOptionsSpec/proxy-options.json/multiple_proxyHost_parameters": "Implement GODRIVER-2183 for Socks5 Proxy Support",
162+
"TestURIOptionsSpec/proxy-options.json/multiple_proxyPort_parameters": "Implement GODRIVER-2183 for Socks5 Proxy Support",
163+
"TestURIOptionsSpec/proxy-options.json/multiple_proxyUsername_parameters": "Implement GODRIVER-2183 for Socks5 Proxy Support",
164+
"TestURIOptionsSpec/proxy-options.json/multiple_proxyPassword_parameters": "Implement GODRIVER-2183 for Socks5 Proxy Support",
165+
166+
// wtimeoutMS write concern option is not supported.
167+
"TestURIOptionsSpec/concern-options.json/Valid_read_and_write_concern_are_parsed_correctly": "wtimeoutMS is deprecated",
168+
"TestURIOptionsSpec/concern-options.json/Non-numeric_wTimeoutMS_causes_a_warning": "wtimeoutMS is deprecated",
169+
"TestURIOptionsSpec/concern-options.json/Too_low_wTimeoutMS_causes_a_warning": "wtimeoutMS is deprecated",
170+
"TestReadWriteConcernSpec/connstring/write-concern.json/wtimeoutMS_as_an_invalid_number": "wtimeoutMS is deprecated",
171+
172+
// Unsupported TLS behavior in connection strings.
173+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsDisableCertificateRevocationCheck_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
174+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates=true_and_tlsDisableCertificateRevocationCheck=false_raises_an_error": "unsupported connstring behavior",
175+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates=false_and_tlsDisableCertificateRevocationCheck=true_raises_an_error": "unsupported connstring behavior",
176+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsDisableCertificateRevocationCheck_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
177+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsAllowInvalidCertificates_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
178+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=true_and_tlsAllowInvalidCertificates=false_raises_an_error": "unsupported connstring behavior",
179+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=false_and_tlsAllowInvalidCertificates=true_raises_an_error": "unsupported connstring behavior",
180+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsAllowInvalidCertificates_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
181+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsDisableCertificateRevocationCheck_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
182+
"TestURIOptionsSpec/tls-options.json/tlsInsecure=true_and_tlsDisableCertificateRevocationCheck=false_raises_an_error": "unsupported connstring behavior",
183+
"TestURIOptionsSpec/tls-options.json/tlsInsecure=false_and_tlsDisableCertificateRevocationCheck=true_raises_an_error": "unsupported connstring behavior",
184+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsDisableCertificateRevocationCheck_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
185+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsInsecure_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
186+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=true_and_tlsInsecure=false_raises_an_error": "unsupported connstring behavior",
187+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=false_and_tlsInsecure=true_raises_an_error": "unsupported connstring behavior",
188+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsInsecure_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
189+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsDisableOCSPEndpointCheck_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
190+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=true_and_tlsDisableOCSPEndpointCheck=false_raises_an_error": "unsupported connstring behavior",
191+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck=false_and_tlsDisableOCSPEndpointCheck=true_raises_an_error": "unsupported connstring behavior",
192+
"TestURIOptionsSpec/tls-options.json/tlsDisableCertificateRevocationCheck_and_tlsDisableOCSPEndpointCheck_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
193+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck_and_tlsDisableCertificateRevocationCheck_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
194+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck=true_and_tlsDisableCertificateRevocationCheck=false_raises_an_error": "unsupported connstring behavior",
195+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck=false_and_tlsDisableCertificateRevocationCheck=true_raises_an_error": "unsupported connstring behavior",
196+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck_and_tlsDisableCertificateRevocationCheck_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
197+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsDisableOCSPEndpointCheck_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
198+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates=true_and_tlsDisableOCSPEndpointCheck=false_raises_an_error": "unsupported connstring behavior",
199+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates=false_and_tlsDisableOCSPEndpointCheck=true_raises_an_error": "unsupported connstring behavior",
200+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsDisableOCSPEndpointCheck_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
201+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck_and_tlsAllowInvalidCertificates_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
202+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck=true_and_tlsAllowInvalidCertificates=false_raises_an_error": "unsupported connstring behavior",
203+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck=false_and_tlsAllowInvalidCertificates=true_raises_an_error": "unsupported connstring behavior",
204+
"TestURIOptionsSpec/tls-options.json/tlsDisableOCSPEndpointCheck_and_tlsAllowInvalidCertificates_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
205+
"TestURIOptionsSpec/tls-options.json/Invalid_tlsAllowInvalidCertificates_causes_a_warning": "unsupported connstring behavior",
206+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_is_parsed_correctly": "unsupported connstring behavior",
207+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidHostnames_is_parsed_correctly": "unsupported connstring behavior",
208+
"TestURIOptionsSpec/tls-options.json/Invalid_tlsAllowInvalidHostnames_causes_a_warning": "unsupported connstring behavior",
209+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsAllowInvalidCertificates_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
210+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsAllowInvalidCertificates_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
211+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsInsecure_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
212+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidCertificates_and_tlsInsecure_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
213+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsAllowInvalidHostnames_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
214+
"TestURIOptionsSpec/tls-options.json/tlsInsecure_and_tlsAllowInvalidHostnames_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
215+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidHostnames_and_tlsInsecure_both_present_(and_true)_raises_an_error": "unsupported connstring behavior",
216+
"TestURIOptionsSpec/tls-options.json/tlsAllowInvalidHostnames_and_tlsInsecure_both_present_(and_false)_raises_an_error": "unsupported connstring behavior",
217+
218+
// TODO(GODRIVER-2991): make delimiting slash between hosts and options
219+
// optional.
220+
"TestConnStringSpec/valid-options.json/Missing_delimiting_slash_between_hosts_and_options": "Implement GODRIVER-2991 making delimiting slash between hosts and options optional",
221+
222+
// Connstring tests violate current Go Driver behavior
223+
"TestURIOptionsSpec/connection-pool-options.json/maxConnecting=0_causes_a_warning": "unsupported behavior",
224+
"TestURIOptionsSpec/single-threaded-options.json/Invalid_serverSelectionTryOnce_causes_a_warning": "unsupported behavior",
225+
"TestConnStringSpec/valid-warnings.json/Empty_integer_option_values_are_ignored": "SPEC-1545: unsupported behavior",
226+
"TestConnStringSpec/valid-warnings.json/Empty_boolean_option_value_are_ignored": "SPEC-1545: unsupported behavior",
227+
"TestConnStringSpec/valid-warnings.json/Comma_in_a_key_value_pair_causes_a_warning": "DRIVERS-2915: unsupported behavior",
155228
}
156229

157230
// CheckSkip checks if the fully-qualified test name matches a skipped test

internal/spectest/spectest.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ package spectest
99
import (
1010
"io/ioutil"
1111
"path"
12+
"path/filepath"
13+
"strings"
1214
"testing"
1315

1416
"go.mongodb.org/mongo-driver/v2/internal/require"
@@ -33,3 +35,14 @@ func FindJSONFilesInDir(t *testing.T, dir string) []string {
3335

3436
return files
3537
}
38+
39+
func TestPath(depth int, testDir string, subDirs ...string) string {
40+
const basePath = "testdata/specifications/source/"
41+
42+
// Create a string of "../" repeated 'depth' times
43+
relativePath := strings.Repeat("../", depth)
44+
// Construct the full path
45+
fullPath := relativePath + basePath + testDir + "/tests/" + filepath.Join(subDirs...)
46+
47+
return fullPath
48+
}

mongo/read_write_concern_spec_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616

1717
"go.mongodb.org/mongo-driver/v2/bson"
1818
"go.mongodb.org/mongo-driver/v2/internal/assert"
19+
"go.mongodb.org/mongo-driver/v2/internal/spectest"
1920
"go.mongodb.org/mongo-driver/v2/mongo/readconcern"
2021
"go.mongodb.org/mongo-driver/v2/mongo/writeconcern"
2122
"go.mongodb.org/mongo-driver/v2/x/bsonx/bsoncore"
@@ -24,9 +25,8 @@ import (
2425
)
2526

2627
const (
27-
readWriteConcernTestsDir = "../testdata/source/read-write-concern/tests/"
28-
connstringTestsDir = "connection-string"
29-
documentTestsDir = "document"
28+
connstringTestsDir = "connection-string"
29+
documentTestsDir = "document"
3030
)
3131

3232
var (
@@ -36,6 +36,7 @@ var (
3636
reg.RegisterTypeMapEntry(bson.TypeEmbeddedDocument, reflect.TypeOf(bson.Raw{}))
3737
return reg
3838
}()
39+
readWriteConcernTestsDir = spectest.TestPath(1, "read-write-concern")
3940
)
4041

4142
type connectionStringTestFile struct {
@@ -103,9 +104,7 @@ func runConnectionStringTestFile(t *testing.T, filePath string) {
103104
}
104105

105106
func runConnectionStringTest(t *testing.T, test connectionStringTest) {
106-
if test.SkipReason != "" {
107-
t.Skip(test.SkipReason)
108-
}
107+
spectest.CheckSkip(t)
109108

110109
cs, err := connstring.ParseAndValidate(test.URI)
111110
if !test.Valid {

testdata/kmip-certs/ca-ec.pem

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBtjCCAVsCAj+0MAoGCCqGSM49BAMCMGUxCzAJBgNVBAYTAlVTMREwDwYDVQQI
3+
DAhOZXcgWW9yazEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEQMA4GA1UECgwHTW9u
4+
Z29EQjEMMAoGA1UECwwDREJYMQswCQYDVQQDDAJjYTAgFw0yMjA4MTgwMDM5NTZa
5+
GA8yMDYyMDgwODAwMzk1NlowZTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZ
6+
b3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MRAwDgYDVQQKDAdNb25nb0RCMQww
7+
CgYDVQQLDANEQlgxCzAJBgNVBAMMAmNhMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
8+
QgAE0YOWpm6I2mES1h6CKMw5j29lWDfk36/S7i2+Rw5e9JvGmDGSepDH03MJlm4l
9+
J9pou6NJrtAfIhMsxvh4oECodTAKBggqhkjOPQQDAgNJADBGAiEAyr7ByfWjA1aG
10+
hJD1zFtU2C/+i59vGY3oYQ3gX6Y7HrICIQDkO5JF9tXeDOL5IPkpjBAp6OjACE6Y
11+
Ns42/ywMFmyWhA==
12+
-----END CERTIFICATE-----

testdata/kmip-certs/client-ec.pem

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB/jCCAaSgAwIBAgICYz4wCgYIKoZIzj0EAwIwZTELMAkGA1UEBhMCVVMxETAP
3+
BgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MRAwDgYDVQQK
4+
DAdNb25nb0RCMQwwCgYDVQQLDANEQlgxCzAJBgNVBAMMAmNhMCAXDTIyMDgxODAw
5+
Mzk1NloYDzIwNjIwODA4MDAzOTU2WjBpMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
6+
TmV3IFlvcmsxFjAUBgNVBAcMDU5ldyBZb3JrIENpdHkxEDAOBgNVBAoMB01vbmdv
7+
REIxDDAKBgNVBAsMA0RCWDEPMA0GA1UEAwwGY2xpZW50MFkwEwYHKoZIzj0CAQYI
8+
KoZIzj0DAQcDQgAE3lcl3A0IqcmuNeNhk9u8KZKe/Du5/e2xd3B8MRqROb/MDTFY
9+
JkBatcCNhcSCIjgtFMjZ8Rv2WrrN0fvmEqYpm6M+MDwwCQYDVR0TBAIwADAaBgNV
10+
HREEEzARgglsb2NhbGhvc3SHBH8AAAEwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCgYI
11+
KoZIzj0EAwIDSAAwRQIgbkV6V3MK2nZdjr7LV0PKqfxKCWRyxRACEOH61a6dctsC
12+
IQD6k65C8AXAPOL+cqaZjoEMBpRea4F8gL0jIwzHh+tkAA==
13+
-----END CERTIFICATE-----
14+
-----BEGIN EC PRIVATE KEY-----
15+
MHcCAQEEIOw4V3MEjv/5go8JQGr9Au1sa9yzLzPXVsiZ2OihwN7joAoGCCqGSM49
16+
AwEHoUQDQgAE3lcl3A0IqcmuNeNhk9u8KZKe/Du5/e2xd3B8MRqROb/MDTFYJkBa
17+
tcCNhcSCIjgtFMjZ8Rv2WrrN0fvmEqYpmw==
18+
-----END EC PRIVATE KEY-----

testdata/kmip-certs/server-ec.pem

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB/TCCAaSgAwIBAgICNNIwCgYIKoZIzj0EAwIwZTELMAkGA1UEBhMCVVMxETAP
3+
BgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MRAwDgYDVQQK
4+
DAdNb25nb0RCMQwwCgYDVQQLDANEQlgxCzAJBgNVBAMMAmNhMCAXDTIyMDgxODAw
5+
Mzk1NloYDzIwNjIwODA4MDAzOTU2WjBpMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
6+
TmV3IFlvcmsxFjAUBgNVBAcMDU5ldyBZb3JrIENpdHkxEDAOBgNVBAoMB01vbmdv
7+
REIxDDAKBgNVBAsMA0RCWDEPMA0GA1UEAwwGc2VydmVyMFkwEwYHKoZIzj0CAQYI
8+
KoZIzj0DAQcDQgAEgWFZeI/XzPl42qAMa8UZBLoW2IdkIowhz+iu9F5LkAXI388L
9+
qbRE4327RvquPO7Ca5eB9GNs77DEtnfMnVuXQ6M+MDwwCQYDVR0TBAIwADAaBgNV
10+
HREEEzARgglsb2NhbGhvc3SHBH8AAAEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCgYI
11+
KoZIzj0EAwIDRwAwRAIgHz7k59ubmnFHM+4GQpz0aeQ+FQGadRYe/h31iRye2wMC
12+
IAvirZCoxYBLlZ0NoXH8ncmEQzgkCx9hhv7mWpjNRk/h
13+
-----END CERTIFICATE-----
14+
-----BEGIN EC PRIVATE KEY-----
15+
MHcCAQEEIIRjzdANl/ghc/LgEdyGRc3xo07YHu1qku3GQNGY2OnboAoGCCqGSM49
16+
AwEHoUQDQgAEgWFZeI/XzPl42qAMa8UZBLoW2IdkIowhz+iu9F5LkAXI388LqbRE
17+
4327RvquPO7Ca5eB9GNs77DEtnfMnVuXQw==
18+
-----END EC PRIVATE KEY-----

0 commit comments

Comments
 (0)