aboutsummaryrefslogtreecommitdiff
path: root/create_sign_request_test.go
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2015-02-15 01:34:25 +0100
committerGibheer <gibheer@gmail.com>2015-02-15 01:34:25 +0100
commit16eb14db9f9b228ef88bcf1beb09cf823256dac1 (patch)
tree414ed9ba9f3e5679a7b0ae7b120e752d3f8ee2f6 /create_sign_request_test.go
parent2f9126dc6a2eab32316ec90e21688d31159f9e80 (diff)
redesign cli
This is a major rebuilding of the CLI. The library part is split out into pkilib and the cli handles only the communication with the user, I/O and the library. The API will still look the same, but the code should be much better to grasp. Instead of repeating everything, more will be grouped together and reused.
Diffstat (limited to 'create_sign_request_test.go')
-rw-r--r--create_sign_request_test.go84
1 files changed, 0 insertions, 84 deletions
diff --git a/create_sign_request_test.go b/create_sign_request_test.go
deleted file mode 100644
index fef7db5..0000000
--- a/create_sign_request_test.go
+++ /dev/null
@@ -1,84 +0,0 @@
-package main
-
-import (
- "bytes"
- "crypto/x509"
- "encoding/pem"
- "io/ioutil"
- "net"
- "testing"
-)
-
-type CSRTest struct {
- ShouldBe []string
- Set func(*SignFlags)
- Fetch func(*x509.CertificateRequest) []string
-}
-
-const (
- RAW_PRIVATE_KEY = `-----BEGIN EC PRIVATE KEY-----
-MIHbAgEBBEFkAEFc5264Yo7Xo+yj3ZwaqdffTphGT3/8Q+pvi4ULmXaFiGoTkR5X
-lKnlRUEp0I4Ra9U7GjLDtFLwTaLzdXuUT6AHBgUrgQQAI6GBiQOBhgAEAdW0usq0
-zEzvhR0u5ZSbOXRzg+TbICZGfOLy9KpKfz6I6suFOAO7f3fwDNOqMfyYUhtenMz7
-T/BKArg+v58UWHrwAb/UeI4l+OMOoMHYtNNO4nAjTdyY8yFSFY5syzKEYIBzUoLM
-VSfuxBk5ZS2J478X1Vxacq03keDeAY43Oc80XBih
------END EC PRIVATE KEY-----`
-)
-
-func SetupTest() (*SignFlags, *bytes.Buffer) {
- p, _ := pem.Decode([]byte(RAW_PRIVATE_KEY))
- buf := bytes.NewBuffer(make([]byte, 0))
-
- flags := &SignFlags{
- private_key: load_private_key_ecdsa(p),
- output_stream: buf,
- }
- return flags, buf
-}
-
-func TestCSRGeneration(t *testing.T) {
- tests := []CSRTest {
- {
- []string{"foo"},
- func(f *SignFlags) { f.BaseAttributes.CommonName = "foo" },
- func(c *x509.CertificateRequest) []string { return []string{c.Subject.CommonName} },
- }, {
- []string{"foo.com", "bar.com", "baz.com"},
- func(f *SignFlags) { f.DNSNames = []string{ "foo.com", "bar.com", "baz.com" }},
- func(c *x509.CertificateRequest) []string { return c.DNSNames },
- },
- {
- []string{"127.0.0.1", "192.168.0.1"},
- func(f *SignFlags) { f.IPAddresses = []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("192.168.0.1") }},
- func(c *x509.CertificateRequest) []string {
- res := make([]string, 0)
- for _, ip := range c.IPAddresses {
- res = append(res, ip.String())
- }
- return res
- },
- },
- }
- for _, test := range tests {
- flags, io := SetupTest()
- test.Set(flags)
-
- create_csr(*flags)
- res, _ := ioutil.ReadAll(io)
- raw, _ := pem.Decode(res)
-
- csr, _ := x509.ParseCertificateRequest(raw.Bytes)
- if !diff(test.ShouldBe, test.Fetch(csr)) {
- t.Logf("Expected: %v\nbut got: %v", test.ShouldBe, test.Fetch(csr))
- t.Fail()
- }
- }
-}
-
-func diff(a, b []string) bool {
- if len(a) != len(b) { return false }
- for i, e := range a {
- if e != b[i] { return false }
- }
- return true
-}