aboutsummaryrefslogtreecommitdiff
path: root/tests/auth
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-02-22 00:58:53 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-03-15 19:15:55 +0300
commita791b1ce0fa2bc9859474fb6f7a9c0ff8cbd1d4a (patch)
tree3c9823a54e6e28a8c8f9fb281d82ad2a67c117ba /tests/auth
parent755a99a7ebf24e00675e2f2e0f5184825ad74c4a (diff)
Port test.sh to testscript
Diffstat (limited to 'tests/auth')
-rwxr-xr-xtests/auth/cert36
-rw-r--r--tests/auth/default-cert-fp1
-rw-r--r--tests/auth/default-cert.pem30
-rw-r--r--tests/auth/default-openssl.cnf22
-rw-r--r--tests/auth/expired-cert.pem30
-rw-r--r--tests/auth/key.pem51
-rw-r--r--tests/auth/mismatch-cert.pem31
-rw-r--r--tests/auth/mismatch-openssl.cnf22
-rw-r--r--tests/auth/noemail-cert.pem30
-rw-r--r--tests/auth/noemail-openssl.cnf20
10 files changed, 273 insertions, 0 deletions
diff --git a/tests/auth/cert b/tests/auth/cert
new file mode 100755
index 0000000..41b3b9c
--- /dev/null
+++ b/tests/auth/cert
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# Normally, you don't need to regenerate the private key.
+#
+# openssl genrsa 4096 > key.pem
+
+openssl req -x509 -new -key key.pem -days 1825 -config default-openssl.cnf > \
+ default-cert.pem
+
+cat default-cert.pem | openssl x509 -sha256 -noout -fingerprint | \
+ sed -n 's/^SHA256 Fingerprint=\(.*\)$/\1/p' >default-cert-fp
+
+openssl req -x509 -new -key key.pem -days 1825 -config mismatch-openssl.cnf > \
+ mismatch-cert.pem
+
+openssl req -x509 -new -key key.pem -days 1825 -config noemail-openssl.cnf > \
+ noemail-cert.pem
+
+# Normally, you have no reason to regenerate expired-cert.pem, as need to keep
+# it expired for the testing purposes. But if you do, copy expired-cert.pem
+# content to the certificate value of the following manifest files:
+# ../rep-auth/expired/repositories
+#
+# To regenerate the packages and signature manifest files run bpkg rep-create
+# command, for example:
+#
+# ../../bpkg/bpkg rep-create ../rep-auth/expired --key key.pem
+#
+# We cannot do it in the testscript since the certificate has expired. This is
+# also the reason why we store these auto-generated manifests in git.
+#
+# Will have to wait 1 day until the certificate expires. Until then testscript
+# will be failing.
+#
+# openssl req -x509 -new -key key.pem -days 1 -config default-openssl.cnf > \
+# expired-cert.pem
diff --git a/tests/auth/default-cert-fp b/tests/auth/default-cert-fp
new file mode 100644
index 0000000..11ebf3a
--- /dev/null
+++ b/tests/auth/default-cert-fp
@@ -0,0 +1 @@
+AB:0D:3F:C1:B0:13:E4:0E:AD:4A:08:06:AE:F3:85:DB:E2:27:5F:83:11:47:A2:78:64:3C:73:60:F8:66:3A:A4
diff --git a/tests/auth/default-cert.pem b/tests/auth/default-cert.pem
new file mode 100644
index 0000000..34a39f9
--- /dev/null
+++ b/tests/auth/default-cert.pem
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFLzCCAxegAwIBAgIJAKroQKG400AsMA0GCSqGSIb3DQEBCwUAMDMxFzAVBgNV
+BAoMDkNvZGUgU3ludGhlc2lzMRgwFgYDVQQDDA9uYW1lOmJ1aWxkMi5vcmcwHhcN
+MTcwMzA3MDk1NjExWhcNMjIwMzA2MDk1NjExWjAzMRcwFQYDVQQKDA5Db2RlIFN5
+bnRoZXNpczEYMBYGA1UEAwwPbmFtZTpidWlsZDIub3JnMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA2rvxJe7MXMIygVTVGfMR4B/MTRRRgbKdLcXaUbu+
+IfdyjGMu34GsUG51WzhcNOmNdLX2FHEiiESAPvVbWOEO+ZQL3IIxbXc8IgiNEpNP
+PR58SFNwwd2E6C8pmyN7QhXuy+gpVdwbsN9RWXnXBY9A9JtSt+xBuxeDs/PkdoPH
+4O3aL2HB0TUzTPhHZ23BCSzMXIIqJfxEX2g9eKtPPkRMsLd/X0lRqkutjmXlnKXN
+CJ8uE8yUcuWtPSfsqSiEfvBpfcrJ4trQzYgiXfNp4Cy434SsVV5wB2Uki9fTRy2H
+Y478bHLT2wgqVqCLartkOKTawy8bx0C/uA1mxen4U6P9dcKI4j1/oPmiykl0r0Hl
+QIAGOYZzxbk52/pkt7LlSLvqW4jtyIhM4p8CgSRvIyI0eJHEt0ztoB6LN1zAdThu
+bomWaImTxTLJXzl/fea8JJ+6jsP4NBiIrrnT/HBF1MUEiqLfwjAwTraBPtqH8A6a
+I+yGPsWPAhTtlYeyTKv2qkTFA4QolegtkmjWt/oxFzwCwnLPrN19CFPUFPOGiA1+
+u7jGNUzp9KuNFQXfiay5ZzP8cqj1bfnQDDbLkXn2TOI/6bsbq4FiuqYSW//XdVqa
+DZlnVvfwozPlKzdKR9wMSs7PP8P7SFGU5oIh5a2zUbbNZxC8Gef7MYD6xMi7TEAU
+4JECAwEAAaNGMEQwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUF
+BwMDMBoGA1UdEQQTMBGBD2luZm9AYnVpbGQyLm9yZzANBgkqhkiG9w0BAQsFAAOC
+AgEANT2ZQXyrjo/Tqm9KWfQfbYwYMGZH8Ftm1miqpXc5/+Hs3gtKhzIgQvCByO+l
+glvpqOB4sPnul1FTE/9cJFMGH6GGD/oe9pFnaR7mnz+WGwtUCa+i33QJ9sc9H8Uf
+Nk8DDO1g8c6Okn2SAEvg5owygFlhdL822PTCnxB34ns1Q+mgfZlCqczh7MDtXN4h
+d2ezPND6cfWTyEZ/ZYfZVJ54+xUEcuHnY6huyHQJ8vm/E0B77y1B1u9ESHCZKD0A
+/Vb1CYPCIB4Re4oradVO6CkgX6+7k47vhIlFV1Ulo7KtMb1f5a7dlpiMQbVovdK2
+njsMKdaWxgQ9PWXXuDOQZ3U5BcxfUNF8wlOA9ad1Kze+i6Bp64s3FfZ4s+x3QD11
+hDofBZ0YJeEYxyY/zIz7wCmqIoM++FpSYR9lrLuVDnxWN+fdxue79C3oG86c+ny6
+/RR8P+YzO4Jy9nevMom7Hx6F+q/3vU25+NuSvupMqJB3/MuBJl9RNcQ3mcwber8l
+cZNTUVoM/YQ1DwPqLmXobRNxUuqnRtaIEDoWKXNCzhFsMMFA9SJBrEaKDRAuzrxE
+B7GWDvwwpnoKvTooz0g1/CJbPd7qrnAqhHzBZBe7Ux8dTJc62FKNhNn0TSZxIXhS
+nqyCIjDkxJHGaTIoe32tsNxmM1JdRqJUcXHuq6vlFOfHFeI=
+-----END CERTIFICATE-----
diff --git a/tests/auth/default-openssl.cnf b/tests/auth/default-openssl.cnf
new file mode 100644
index 0000000..c14ec06
--- /dev/null
+++ b/tests/auth/default-openssl.cnf
@@ -0,0 +1,22 @@
+repository = build2.org
+company = Code Synthesis
+email = info@build2.org
+
+
+[ req ]
+
+distinguished_name = req_distinguished_name
+x509_extensions = v3_req
+prompt = no
+utf8 = yes
+
+[ req_distinguished_name ]
+
+O = $company
+CN = name:$repository
+
+[ v3_req ]
+
+keyUsage = critical,digitalSignature
+extendedKeyUsage = critical,codeSigning
+subjectAltName = email:$email
diff --git a/tests/auth/expired-cert.pem b/tests/auth/expired-cert.pem
new file mode 100644
index 0000000..3dbbe91
--- /dev/null
+++ b/tests/auth/expired-cert.pem
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFLzCCAxegAwIBAgIJAOx1KvcHxv3GMA0GCSqGSIb3DQEBCwUAMDMxFzAVBgNV
+BAoMDkNvZGUgU3ludGhlc2lzMRgwFgYDVQQDDA9uYW1lOmJ1aWxkMi5vcmcwHhcN
+MTcwMzAxMTcwMTI0WhcNMTcwMzAyMTcwMTI0WjAzMRcwFQYDVQQKDA5Db2RlIFN5
+bnRoZXNpczEYMBYGA1UEAwwPbmFtZTpidWlsZDIub3JnMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA2rvxJe7MXMIygVTVGfMR4B/MTRRRgbKdLcXaUbu+
+IfdyjGMu34GsUG51WzhcNOmNdLX2FHEiiESAPvVbWOEO+ZQL3IIxbXc8IgiNEpNP
+PR58SFNwwd2E6C8pmyN7QhXuy+gpVdwbsN9RWXnXBY9A9JtSt+xBuxeDs/PkdoPH
+4O3aL2HB0TUzTPhHZ23BCSzMXIIqJfxEX2g9eKtPPkRMsLd/X0lRqkutjmXlnKXN
+CJ8uE8yUcuWtPSfsqSiEfvBpfcrJ4trQzYgiXfNp4Cy434SsVV5wB2Uki9fTRy2H
+Y478bHLT2wgqVqCLartkOKTawy8bx0C/uA1mxen4U6P9dcKI4j1/oPmiykl0r0Hl
+QIAGOYZzxbk52/pkt7LlSLvqW4jtyIhM4p8CgSRvIyI0eJHEt0ztoB6LN1zAdThu
+bomWaImTxTLJXzl/fea8JJ+6jsP4NBiIrrnT/HBF1MUEiqLfwjAwTraBPtqH8A6a
+I+yGPsWPAhTtlYeyTKv2qkTFA4QolegtkmjWt/oxFzwCwnLPrN19CFPUFPOGiA1+
+u7jGNUzp9KuNFQXfiay5ZzP8cqj1bfnQDDbLkXn2TOI/6bsbq4FiuqYSW//XdVqa
+DZlnVvfwozPlKzdKR9wMSs7PP8P7SFGU5oIh5a2zUbbNZxC8Gef7MYD6xMi7TEAU
+4JECAwEAAaNGMEQwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUF
+BwMDMBoGA1UdEQQTMBGBD2luZm9AYnVpbGQyLm9yZzANBgkqhkiG9w0BAQsFAAOC
+AgEATQmuoB+NC/IF2qoNQnurJWrV63lC4Ozi/VLIqCSR6A4S9TCcoLNDAtcdiyf4
+GrM+/USyV3whpISesXn0ij10OEMe2/9NUoqkO0Q/woN9WtUQActeBxThOcz0NYMi
+1vg6krlx1fKpQ5g65yC3qka8VUaV9gtaCHFa6mOxZ9q5DaV2NdBAr+FOutRY6d4v
+UySkOyqxfZYLs5W2e+9ofEve17eVNFQwuJY29sw406X+18gYc+KiqldPlwKIhJs1
+CBsWhO0m1GP5dR0gRBmF9WQ4fzNyoYF293ix+WC7eMf2OtRTpo/GEAXDqLlRvpiF
+jALhFtcZjiIqrvnkQFq36jyVNcUnxbMKUgW4XJVpYv4uVII47eJk4a8XRGj0d+7b
+nuFfT4d6gACN3gfOmtd12uT7dNsn5q0fkGhzR4ppDIyTJpGA8UhHETTRPL+HFcb1
+6kXnRPFS7eoF9DoSGtBhdpRUefj8EPJWhfE7xQvMDTYIE/ccBWp173F+xShr2mgF
+xDkHH+vXGFzUZXSEAF2NW9U3bf4bRQpdOkYJsvHJmLYjcGNKdkHjJVWdXmoRpbsR
+IC8M7ZPp+/oV5JEinCXRsT1NN+7l8rkec9hNk5sbokVCcyYv+GxL8kRFt2jyLqny
+RlM2vM3uhgJNYVSlYsgjjg4QfikV6s+QawjSVi6y4ZnHEho=
+-----END CERTIFICATE-----
diff --git a/tests/auth/key.pem b/tests/auth/key.pem
new file mode 100644
index 0000000..6615a2d
--- /dev/null
+++ b/tests/auth/key.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/auth/mismatch-cert.pem b/tests/auth/mismatch-cert.pem
new file mode 100644
index 0000000..785e094
--- /dev/null
+++ b/tests/auth/mismatch-cert.pem
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFTzCCAzegAwIBAgIJAO7DtVrDDUcXMA0GCSqGSIb3DQEBCwUAMEMxFzAVBgNV
+BAoMDkNvZGUgU3ludGhlc2lzMSgwJgYDVQQDDB9uYW1lOmJ1aWxkMi5vcmcvbWlz
+bWF0Y2hlZC9uYW1lMB4XDTE3MDMwNzA5NTYxMVoXDTIyMDMwNjA5NTYxMVowQzEX
+MBUGA1UECgwOQ29kZSBTeW50aGVzaXMxKDAmBgNVBAMMH25hbWU6YnVpbGQyLm9y
+Zy9taXNtYXRjaGVkL25hbWUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDau/El7sxcwjKBVNUZ8xHgH8xNFFGBsp0txdpRu74h93KMYy7fgaxQbnVbOFw0
+6Y10tfYUcSKIRIA+9VtY4Q75lAvcgjFtdzwiCI0Sk089HnxIU3DB3YToLymbI3tC
+Fe7L6ClV3Buw31FZedcFj0D0m1K37EG7F4Oz8+R2g8fg7dovYcHRNTNM+EdnbcEJ
+LMxcgiol/ERfaD14q08+REywt39fSVGqS62OZeWcpc0Iny4TzJRy5a09J+ypKIR+
+8Gl9ysni2tDNiCJd82ngLLjfhKxVXnAHZSSL19NHLYdjjvxsctPbCCpWoItqu2Q4
+pNrDLxvHQL+4DWbF6fhTo/11wojiPX+g+aLKSXSvQeVAgAY5hnPFuTnb+mS3suVI
+u+pbiO3IiEzinwKBJG8jIjR4kcS3TO2gHos3XMB1OG5uiZZoiZPFMslfOX995rwk
+n7qOw/g0GIiuudP8cEXUxQSKot/CMDBOtoE+2ofwDpoj7IY+xY8CFO2Vh7JMq/aq
+RMUDhCiV6C2SaNa3+jEXPALCcs+s3X0IU9QU84aIDX67uMY1TOn0q40VBd+JrLln
+M/xyqPVt+dAMNsuRefZM4j/puxurgWK6phJb/9d1WpoNmWdW9/CjM+UrN0pH3AxK
+zs8/w/tIUZTmgiHlrbNRts1nELwZ5/sxgPrEyLtMQBTgkQIDAQABo0YwRDAOBgNV
+HQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwGgYDVR0RBBMwEYEP
+aW5mb0BidWlsZDIub3JnMA0GCSqGSIb3DQEBCwUAA4ICAQDCecjF6hzS8IcSsOgx
+ReZIu4UPpBXGcfvx5NSiYqahxeepWTnd6Du14Z5gtQZYeXsNLnhHaZMNgLKPnQ0g
+cmpTpeqQF9XKiWbW7YQVstwWdPWoWmmqfZY1nz5jPD/aYBzq+JV1UjztWTQgCQYu
+bovxs/kor6BcPy+KH5oKGq6l+kDdaXCKNqHP7Eg0xiB7tjP8OFt4XPV34tLcLQcb
+gZdhuDCNgds0n8EglUoUBieRtDVIWxP2uVfiTiVTEVpFeFjC2KWEZ5OtFXa4WTkY
+CLDnxVAngZ2xmfNt189YGUrtDS1kD/Kza+wOggQ95iHy2zyNlU4cHZVJxakOm3yf
+X7EcLoQLY2rwtQUr+h+qvk/zrN5eBB50zjTrbFaIC+zTR4FOv+/UWieX8k/aqcnD
+DeLvcEjuh+amLSapYlYrhMGal615PIbsi3eAJJz5ZDS8oUuev9NcuU57rBNqUNbz
+UV8hMHGsD7ej8Tu+XeEgIBmBY6Bke1M6VU00Bt3xW0bH9yaEa0RWSflyfQfX4WGA
+Ukl/CzI3IVxqO8TXDJ5ww0NOdzl9PkQV5HwzDiukutkrvGumUDzu5zkvSyDPGauO
+/xmojCNSGuGYAI1bQnJjLtnKOxJgrHxTsiNCznOCXePr9+/UcoIQ6nyrHwi37/ze
+8hMr+XqSi4IaPRAjSsj8b6IVVg==
+-----END CERTIFICATE-----
diff --git a/tests/auth/mismatch-openssl.cnf b/tests/auth/mismatch-openssl.cnf
new file mode 100644
index 0000000..0c328d0
--- /dev/null
+++ b/tests/auth/mismatch-openssl.cnf
@@ -0,0 +1,22 @@
+repository = build2.org/mismatched/name
+company = Code Synthesis
+email = info@build2.org
+
+
+[ req ]
+
+distinguished_name = req_distinguished_name
+x509_extensions = v3_req
+prompt = no
+utf8 = yes
+
+[ req_distinguished_name ]
+
+O = $company
+CN = name:$repository
+
+[ v3_req ]
+
+keyUsage = critical,digitalSignature
+extendedKeyUsage = critical,codeSigning
+subjectAltName = email:$email
diff --git a/tests/auth/noemail-cert.pem b/tests/auth/noemail-cert.pem
new file mode 100644
index 0000000..420c195
--- /dev/null
+++ b/tests/auth/noemail-cert.pem
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFEzCCAvugAwIBAgIJALnZEjzzFueMMA0GCSqGSIb3DQEBCwUAMDMxFzAVBgNV
+BAoMDkNvZGUgU3ludGhlc2lzMRgwFgYDVQQDDA9uYW1lOmJ1aWxkMi5vcmcwHhcN
+MTcwMzA3MDk1NjExWhcNMjIwMzA2MDk1NjExWjAzMRcwFQYDVQQKDA5Db2RlIFN5
+bnRoZXNpczEYMBYGA1UEAwwPbmFtZTpidWlsZDIub3JnMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA2rvxJe7MXMIygVTVGfMR4B/MTRRRgbKdLcXaUbu+
+IfdyjGMu34GsUG51WzhcNOmNdLX2FHEiiESAPvVbWOEO+ZQL3IIxbXc8IgiNEpNP
+PR58SFNwwd2E6C8pmyN7QhXuy+gpVdwbsN9RWXnXBY9A9JtSt+xBuxeDs/PkdoPH
+4O3aL2HB0TUzTPhHZ23BCSzMXIIqJfxEX2g9eKtPPkRMsLd/X0lRqkutjmXlnKXN
+CJ8uE8yUcuWtPSfsqSiEfvBpfcrJ4trQzYgiXfNp4Cy434SsVV5wB2Uki9fTRy2H
+Y478bHLT2wgqVqCLartkOKTawy8bx0C/uA1mxen4U6P9dcKI4j1/oPmiykl0r0Hl
+QIAGOYZzxbk52/pkt7LlSLvqW4jtyIhM4p8CgSRvIyI0eJHEt0ztoB6LN1zAdThu
+bomWaImTxTLJXzl/fea8JJ+6jsP4NBiIrrnT/HBF1MUEiqLfwjAwTraBPtqH8A6a
+I+yGPsWPAhTtlYeyTKv2qkTFA4QolegtkmjWt/oxFzwCwnLPrN19CFPUFPOGiA1+
+u7jGNUzp9KuNFQXfiay5ZzP8cqj1bfnQDDbLkXn2TOI/6bsbq4FiuqYSW//XdVqa
+DZlnVvfwozPlKzdKR9wMSs7PP8P7SFGU5oIh5a2zUbbNZxC8Gef7MYD6xMi7TEAU
+4JECAwEAAaMqMCgwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUF
+BwMDMA0GCSqGSIb3DQEBCwUAA4ICAQC1grbRMNAvDJ2+yYnHsGsafgx7mYM7QN7N
+kHyYdzr87wvumRiJ5xgnn49VBO51RQkcT7Z/P4MJq9xjYkKS+wCJV2+WTev3ltzQ
+LyFfRJkTJKTvHRDM+hbRFqyvtuRe4U91/aJU7G79gaCjmEr2LSwOywusnPU95VNw
+UPMUMUYhdD1qdQfJ+PbNmrl1UC8MaflwVOb7K/OSjl7tO9JOk3QK3cMm9bqpeCYD
+3HJglvl/yLzW3smh6DxdBVujWcrOAbTALc1tC2bTNQm+f83MipD4YXj09qWAnBy0
+WdRuEtdwZKW3zQ/Y1QesZcEv/3QBYSaKkwr+9sNqAHpD/UVj7qwRfHYLs1GM6o+d
+/bpYz+evSdEu/3lMDxg4CLQtRqElgOnOhvIuziu7qcpgmJpRvYSHJ7RrGQET/fna
++a5KZiYvWVbFQhA79nPBGWvW/Om2dk+/pzn40zcnwnRF8wwNt8ncAI/ZhjLap5qG
+5VFoMA/AP+MCsk0at3E4t4VwofdS7WB0KJv2cuGEnLRk7GOP058zOv/QQt2fXgK/
+iO68nn7vfNzVFNfbb6vYzfKigd9JiYn+icfi/cZfB7zbVHzvjS3GEQk+2NVBnnyf
+LUTr5k9fTekFR1l1AE8NWi56fJ6W5d/TApkl8uun7CItHL6y2WuLyKhMxAp66LLB
+hMfgR3OW4w==
+-----END CERTIFICATE-----
diff --git a/tests/auth/noemail-openssl.cnf b/tests/auth/noemail-openssl.cnf
new file mode 100644
index 0000000..4fc8618
--- /dev/null
+++ b/tests/auth/noemail-openssl.cnf
@@ -0,0 +1,20 @@
+repository = build2.org
+company = Code Synthesis
+
+
+[ req ]
+
+distinguished_name = req_distinguished_name
+x509_extensions = v3_req
+prompt = no
+utf8 = yes
+
+[ req_distinguished_name ]
+
+O = $company
+CN = name:$repository
+
+[ v3_req ]
+
+keyUsage = critical,digitalSignature
+extendedKeyUsage = critical,codeSigning