Commit Graph

358 Commits

Author SHA1 Message Date
Inteon
d6cd6f457d
set correct exit codes when exiting
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-07-22 12:57:08 +02:00
Ashley Davis
17ec9ea8e7
fix check for self-signed certs in EncodeX509Chain
see also https://github.com/jetstack/cert-manager/issues/4142

EncodeX509Chain checked for self-signed certs by comparing the subject
and issuer of the cert in question, which is invalid since it's
perfectly fine for those to match.

the correct behavior is to use cert.CheckSignatureFrom(cert). this bug
was exposed in 1.4 when ParseSingleCertificateChain started using
EncodeX509Chain in the critical path of several issuers; when end-users
had leaf certificates with subjects matching their issuer's subject, the
bug was triggered.

includes newly written tests for EncodeX509Chain and a test for
ParseSingleCertificateChain

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2021-07-21 16:45:48 +01:00
Inteon
21bc98979e
improved ux
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-07-16 13:11:40 +02:00
Inteon
ac7775bdb4
made errors human readable, added unit tests, added check api to e2e, fixed os.Exit(1)
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-07-15 16:50:31 +02:00
Inteon
5458173739
Add kubectl 'cert-manager check api' command
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-07-15 16:50:31 +02:00
Maël Valais
42e65c3694 linter party: duplicate import of k8s.io/api/core/v1 (ST1019)
Signed-off-by: Maël Valais <mael@vls.dev>
2021-07-06 12:51:01 +02:00
joshvanl
943f9abdb1 Minor comment and error message changes
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-06-30 18:09:32 +01:00
joshvanl
b237b5c222 Changes comment for duration annotation parsing
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-06-29 14:34:30 +01:00
joshvanl
f5b609e446 Adds Vault CertificateSigningRequest Issuer controller
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-06-29 09:11:43 +01:00
joshvanl
78a6df1ebd Fix util/pki test which relied on hardcoded CSR common name
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-06-15 17:58:34 +01:00
Anner J. Bonilla
9546a357a5
Add support for certificates with ed25519 private keys
Note that using ed25519 on the public internet is not currently
recommended, since it's not widely supported. You'd likely not be able
to use an Ed25519 cert with an ACME issuer today.

Ed25519 certs might be useful for internal PKI, though - an ed25519 CA
issuer, say - or for testing ed25519 certs before they become more
widely available on the public internet. They're not currently
supported by Vault, Venafi or ACME (Letsencrypt) issuers.

Signed-off-by: Anner J. Bonilla <abonilla@hoyosintegrity.com>
Signed-off-by: Anner J. Bonilla <annerjb@gmail.com>
Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2021-06-14 11:17:35 +01:00
joshvanl
acc5431f1b Fix signernames to allow clusterissuers with dots in name
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-28 10:13:00 +01:00
joshvanl
9e1b0342d0 Updates with review comments
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-27 18:48:50 +01:00
joshvanl
c5c206cace Adds base CertificateSigningRequest cert-manager controller
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-27 00:23:50 +01:00
joshvanl
b38519fe66 Adds kube certificates v1 API utils
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-27 00:18:29 +01:00
jetstack-bot
96ea5e51d4
Merge pull request #3985 from JoshVanL/parse-certificate-chain-ca
Parse certificate chain CA Issuer
2021-05-13 13:23:14 +01:00
jetstack-bot
595d753339
Merge pull request #3982 from JoshVanL/parse-certificate-chain
Change Vault Issuer to construct the certificate chain to populate the CertificateRequest CA with the root most cert.
2021-05-12 17:34:13 +01:00
joshvanl
58a25314f7 Changes CR CA controller to use ECDSA keys
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-12 15:07:25 +01:00
joshvanl
d327d40297 Updates SignCSRTemplate to use ParseCertificateChain
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-12 14:22:59 +01:00
joshvanl
9622b664bf Adds SecretTLSKeyPairAndCA to parse a certificate chain and CA from a
target Secret

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-12 14:22:59 +01:00
joshvanl
68aeb330b7 Change ParseCertificateChain to ParseSingleCertificateChain to show
intention better

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-12 14:12:06 +01:00
Jake Sanders
423e82b65b
Revert "Merge pull request #3939 from JoshVanL/istio-api-to-internal-apis"
This reverts commit f2a74ade5e, reversing
changes made to 7ff54e61e9.

Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2021-05-11 14:50:23 +01:00
joshvanl
88693435b8 Change ParseCertificateChain test func to use ECDSA keys to speed up
runtime

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-10 19:13:31 +01:00
joshvanl
744906ebaf Adds ParseCertificateChain to parse and test a pem bundle to ensure its
a valid flat chain. Returns a chain and optional CA

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-05-10 19:06:21 +01:00
Jake Sanders
bb519a59b9
Log a message when test framework fails to parse cover profile flag
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2021-05-05 16:40:16 +01:00
Jake Sanders
2390264fd4
staticcheck: package "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" is being imported more than once (ST1019)
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2021-05-04 15:05:32 +01:00
Jake Sanders
741df8cbe7
errcheck: flag.CommandLine.Parse is not checked
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2021-05-04 14:30:47 +01:00
joshvanl
c5e2184a4a Moves /pkg/internal/apis/istio to /pkg/internal/istio
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-04-29 12:31:57 +01:00
joshvanl
01716e2907 Fixes stutter: istio.IsIstioInstalled -> istio.IsInstalled
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-04-29 11:42:21 +01:00
joshvanl
00ceff3421 Update bazel
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-04-29 11:36:49 +01:00
joshvanl
3af22cf6c6 Move istio util duncs to pkg/util/istio
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2021-04-29 11:35:41 +01:00
Erik Godding Boye
249ec4fe8b Add unit tests for pki.SignCSRTemplate
Signed-off-by: Erik Godding Boye <egboye@gmail.com>

Co-authored-by: Maël Valais <mael@vls.dev>
2021-04-23 15:14:33 +02:00
Erik Godding Boye
b514a74d0a fix #3619: Handle CA issuer working as intermediate correctly
Signed-off-by: Erik Godding Boye <egboye@gmail.com>
2021-04-22 18:43:33 +02:00
Ashley Davis
3df1173a22
fix incorrect comparison function for public keys
also adds/improves doc comments on related functions, and adds tests of
comparisons RSA keys and ECDSA keys. these tests failed as expected
before the function was changed, e.g.:

```text
Executing tests from //pkg/util/pki:go_default_test
---------------------------------------------------
--- FAIL: TestPublicKeysEqualECDSA (0.00s)
  generate_test.go:492: got an incorrect match from different curves:
    pub1 type: "P-256"
    pub2 type: "P-521"
--- FAIL: TestPublicKeysEqualRSA (0.00s)
  generate_test.go:560: got an incorrect match from different RSA keys:
    pub1: &rsa.PublicKey{N:2293...<snip>...8869, E:65537}
    pub2: &rsa.PublicKey{N:2293...<snip>...8869, E:3}
```

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2021-04-22 16:07:18 +01:00
Maël Valais
f56db9f93d Revert "Handle CA issuer working as intermediate" (#3847)
As discussed in #3847, I went too fast and /lgtm from my bed. That led
to having a piece of code that could potentially break people's
cert-manager deployments.

Our plan is to have the same PR re-opened so that we can have it
released for v1.4 (due on Friday 11 June 2021 as per our timeline).

Signed-off-by: Maël Valais <mael@vls.dev>
2021-04-07 10:25:31 +02:00
Erik Godding Boye
bbafeeef67 fix #3619: Handle CA issuer working as intermediate correctly
Signed-off-by: Erik Godding Boye <egboye@gmail.com>
2021-04-06 19:45:48 +02:00
Ashley Davis
ef5aa91f35
improve comment to match the function definition
Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2021-03-19 13:59:33 +00:00
Ashley Davis
b246c92a45
clarify exact curve types of current ECDSA keys
it's conceivable that in the future we could have Ed25519 certs,
which would also have a key size of 256 but would be a new named entry
here

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2021-03-19 13:59:30 +00:00
Josh Soref
895cb51ed9 spelling: nonexistent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2021-03-04 13:04:38 -05:00
Mitsuo Heijo
ffa79f6b8d
Fix build on go1.16
Signed-off-by: Mitsuo Heijo <mitsuo.heijo@gmail.com>
2021-02-26 22:47:56 +09:00
Maartje Eyskens
7078a5c7b8 Rename the User Agent fields
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-12-15 17:25:18 +01:00
Maartje Eyskens
ab0cd57dc5 Use The cert-manager Authors.
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-12-11 19:04:13 +01:00
Maartje Eyskens
1788a9d758 Update copyright to cert-manager project
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-12-08 19:04:49 +01:00
Mateusz Gozdek
27fa2f1ec4
Fix various typos found by codespell
Found by running this command:

codespell -S .git,*.png,go.sum -L keypair,iam,ans,unknwon,tage,ths,creater

Signed-off-by: Mateusz Gozdek <mgozdekof@gmail.com>
2020-11-07 14:55:13 +01:00
Raphaël Pinson
b2d719d6c3
Add encode_usages_in_request to Certificate spec (fix #3301)
Signed-off-by: Raphaël Pinson <raphael.pinson@camptocamp.com>
2020-10-16 15:40:32 +02:00
Maartje Eyskens
52bda8a33f Fix validation in CSR
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-10-08 15:24:56 +02:00
jetstack-bot
4a13dd72f3
Merge pull request #3279 from meyskens/fix-double-signing-validation
Fix double "signing" KU validation
2020-09-22 10:27:51 +01:00
Maartje Eyskens
e01bf377de Split out logic
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-09-17 14:46:23 +02:00
Maartje Eyskens
ce8ca4ca20 Fixes validation when teh 2 signing keys are set
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-09-14 11:05:44 +02:00
Maartje Eyskens
e989384c96 Update tests
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-09-07 09:30:11 +02:00
Maartje Eyskens
8d15ec6bc8 Only encode EKUs if there are EKUs to be encoded
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-09-07 09:00:53 +02:00
Lars Lehtonen
ae8afe2257
pkg/util/pki: fix dropped errors
Signed-off-by: Lars Lehtonen <lars.lehtonen@gmail.com>
2020-09-03 19:32:24 -07:00
Maartje Eyskens
3154be722c Implement feedback
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-25 14:44:43 +02:00
Maartje Eyskens
abb56fb0b5 Add CSR validation
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-25 10:39:24 +02:00
Maartje Eyskens
f6610fb744 Support key usages
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-24 20:10:01 +02:00
Maartje Eyskens
0e17b9d237 Add boilerplate
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-24 11:21:41 +02:00
Maartje Eyskens
d15054e4ea Add extended key usages into CSR
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-24 10:22:58 +02:00
Richard Wall
01b5d0fa88 Fix tests in ./pkg/controller/certificates/...
Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-08-20 14:28:06 +01:00
Richard Wall
81eb53f597 ./hack/update-all.sh
Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-08-20 14:28:06 +01:00
Richard Wall
a70298180a Run a script to update v1alpha2 usage to v1
Script is available at https://github.com/jetstack/cert-manager/pull/3201

Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-08-20 14:26:51 +01:00
Maartje Eyskens
9dd00905e9 Update klog
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>

klog v2

Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-08-12 10:59:41 +02:00
JoshVanL
49ee468161
Adds integration test for issuer controller secret annotations, and
fixes GenerateTempalate func

Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2020-08-06 11:08:13 +01:00
Haoxiang Zhou
4f26537ff7 Set visibility to public
Signed-off-by: Haoxiang Zhou <haoxiang.zhou@jetstack.io>
2020-07-02 16:12:47 +01:00
Haoxiang Zhou
fe80b7d760 Moved predicate package to pkg/util
Signed-off-by: Haoxiang Zhou <haoxiang.zhou@jetstack.io>
2020-07-02 12:23:15 +01:00
James Munnelly
1adfe16690 Bulk fix of non-test staticcheck failures
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-06-26 12:25:08 +01:00
Haoxiang Zhou
5bcea49921 Issuing controller encodes private keys to PKCS1/PKCS8 as requested by user
Signed-off-by: Haoxiang Zhou <haoxiang.zhou@jetstack.io>
2020-06-18 15:26:14 +01:00
James Munnelly
9cb68d1d91 Remove serverAuth default usage & remove unused DefaultKeyUsage functions
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-04-30 15:57:12 +01:00
James Munnelly
212ef42a66 util/pki: allow certificates only specifying IP, URI or Email SANs to be signed
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-04-21 09:49:32 +01:00
JoshVanL
a6a8ee29e3 Moves issuing controller secret handler into secretsManager struct
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2020-04-15 16:16:08 +01:00
James Munnelly
75c8fcef8c pkg/util: add EqualKeyUsagesUnsorted function
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-04-15 12:26:21 +01:00
James Munnelly
8b3b9dc5eb Remove defaulting of Organization name
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-04-15 12:25:29 +01:00
jetstack-bot
fba7b09ac8
Merge pull request #2725 from JoshVanL/ctl-version
cert-manager-ctl CLI with version
2020-04-08 12:45:15 +01:00
JoshVanL
49d3bde7eb
Move cmd signal handler into shared util
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2020-04-02 11:02:33 +01:00
James Munnelly
e36c1acf1c Add '-ubi' suffix to AppVersion in UBI artifacts
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-04-01 19:34:34 +01:00
JoshVanL
19bc4734b6
Adds cert-manager-ctl with version command
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2020-04-01 18:54:19 +01:00
James Munnelly
acff2b12bb Fix JKS keystore functionality and add additional tests
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-03-23 10:02:42 +00:00
jetstack-bot
00b101de76
Merge pull request #2597 from meyskens/emailsans
Add Email SANs
2020-03-03 16:31:56 +00:00
Maartje Eyskens
1c27fcb8d9 Fix CSR validation for Email SANs
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-03-03 15:02:51 +01:00
Josh Soref
126edc1095 spelling: convenient
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-02-24 16:32:23 -05:00
Maartje Eyskens
d3a623314c Add EmailSANs field
Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
2020-02-21 08:49:00 +01:00
James Munnelly
22f4f1e1f2 Add release-tars targets to construct cert-manager release artifacts
Signed-off-by: James Munnelly <james@munnelly.eu>
2020-01-30 21:02:58 +00:00
Joshua Mathianas
39cc63a205 resolve failing unit tests
Signed-off-by: Joshua Mathianas <mathianasj@gmail.com>
2020-01-16 11:34:44 -05:00
Joshua Mathianas
b096e0f0af Made requested changes from review
Signed-off-by: Joshua Mathianas <mathianasj@gmail.com>
2020-01-16 09:41:16 -05:00
Joshua Mathianas
e33e28c4fd add backwards compatability for using existing common name or organization if x509name ones are not set
add ability to specify more subject attributes for csr

Signed-off-by: Joshua Mathianas <mathianasj@gmail.com>
2020-01-16 07:50:26 -05:00
James Munnelly
361fdfac3f Don't log misleading error messages
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-12-16 16:31:18 +00:00
James Munnelly
f3a58ed991 webhook: register pprof http handlers
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-12-10 16:54:15 +00:00
jetstack-bot
1793e7b573
Merge pull request #2236 from munnerz/covered-images
Add Bazel image targets with coverage enabled
2019-11-14 10:54:09 +00:00
JoshVanL
d38abbe23a Update csr_test.go to include server auth key usage
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-11-11 13:19:25 +00:00
JoshVanL
a03560b93a Updates tests to ensure that key usages are correctly checked
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-11-05 14:22:25 +00:00
chenjun.cj
fe6e446f43 enable cert-manager using --kubeconfig to connect API Server with kubeconfig file
Signed-off-by: chenjun.cj <chenjun.cj@alibaba-inc.com>
2019-10-17 12:14:28 +08:00
James Munnelly
5057da1b89 Add Bazel image targets with coverage enabled
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-10-16 08:59:24 +01:00
JoshVanL
7965be9b41 Adds from comments
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-10-02 17:48:37 +01:00
JoshVanL
13b0584838 Change behaviour to be more relaxed around common names
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-10-02 17:48:37 +01:00
JoshVanL
88cadca433 Adds proper checking for common name in e2e tests
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-10-02 17:48:37 +01:00
JoshVanL
dd7213866f Adds validation for URIs to certificate validation
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-10-02 17:48:37 +01:00
JoshVanL
832e20ae29 Adds URISANs field to Certificate
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-10-02 17:48:37 +01:00
JoshVanL
4eb6335c76 Support out of tree issuers in ingress-shim
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-09-27 13:54:39 +01:00
James Munnelly
973f4aa424 Update codebase for external dependencies
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-09-26 12:52:43 +01:00
James Munnelly
58754abf37 Refactor codebase for v1alpha2
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-09-20 16:22:43 +01:00
stuart.warren
7eb1e34e48 feat: enable certificate keyusages
Enable users to request x509 key usages and extended key usages when
defining a certificate or certificate signing request

fixes: #301

Signed-off-by: stuart.warren <stuart.warren@ocado.com>
2019-08-31 01:00:00 +01:00
JoshVanL
efe1d4e670 Use DefaultCertDuration in ./pkg/api/util
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-19 16:04:12 +01:00
JoshVanL
ab346453e3 Moves DefaultCertDruation to ./api/util/duration.go
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-19 16:04:12 +01:00
JoshVanL
d96c7d2e1c Adds venafi internal package with venafi CR controller
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-19 16:04:12 +01:00
JoshVanL
5f70998acb Cleans up some code and clearer naming
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-13 23:37:35 +01:00
JoshVanL
ea84dfdb2b Code organisation and cleaning up code
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-13 23:37:35 +01:00
JoshVanL
1bbdd03bfe Move DefaultCertDuration to pkg/util/api
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-13 23:37:35 +01:00
JoshVanL
635aae6ffc Fix vault duration panic + util.CertDuration to default
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-13 23:37:06 +01:00
JoshVanL
6d3416325e Move tests to use new slimmer controller test builder
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-01 16:39:01 +01:00
JoshVanL
0ce8aab9d2 Adds SelfSigned certificaterequest controller
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-08-01 16:39:01 +01:00
James Munnelly
406e6ad291 Don't depend on pkg/issuer in pkg/util/pki
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-07-25 15:12:41 +01:00
jetstack-bot
4dc46d68cd
Merge pull request #1910 from JoshVanL/ca-issuer-sign-migration
Move CA signer into ./pkg/controller/certificaterequests/ca
2019-07-25 14:48:28 +01:00
JoshVanL
f8c511a705 Address ca sign returning error
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-23 12:06:30 +01:00
JoshVanL
294d8ae93d Move IssuerKind to ./pkg/util
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-23 09:27:22 +01:00
JoshVanL
ab838197fc Move CA signer into ./pkg/controller/certificaterequests/ca
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-23 09:27:22 +01:00
James Munnelly
32bc10710e Update use of featuregate package
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-07-20 01:57:24 +01:00
James Munnelly
b99b492827 Remove unused var from GenerateCSR
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-07-17 10:04:40 +01:00
James Munnelly
096fa22d07 Set ExtKeyUsageServerAuth in GenerateTemplateFromCertificateRequest
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-07-05 17:27:43 +01:00
JoshVanL
a60a6d755f Share key type func
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-05 10:14:25 +01:00
JoshVanL
f9417da5c5 Fixes and adds tests to utils/Equal.. funcs
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-04 15:21:00 +01:00
JoshVanL
98d5725eea WIP, add CertificateRequest e2e tests
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-03 15:59:05 +01:00
JoshVanL
6b1ff0148b Adds certificate request base controller and CA issuer controller
instance

Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-03 15:42:03 +01:00
JoshVanL
79e5cf37a3 Improve comments and test coverage of pkg/issuer/ca/sign.go
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-02 11:55:45 +01:00
JoshVanL
f5d0428c78 Moves SignCSRTemplate to pkg/utils/pki
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-07-01 09:23:58 +01:00
JoshVanL
e70374d069 Adds IsCA to CSR template generation
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-06-30 17:59:08 +01:00
JoshVanL
70b974695b Adds Sign function to CA issuer
Signed-off-by: JoshVanL <vleeuwenjoshua@gmail.com>
2019-06-28 16:40:12 +01:00
Crystal-Chun
4f35c56443 Allows certificates to use PKCS#8 Issue 1155 (#1308)
* Added KeyEncoding spec value to Certificate type.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added validation for Certificate Spec field KeyEncoding.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added Encoding PKCS8 function for encoding private keys in generate.go.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Modified the call to the private key encoding function for each issuer in issue.go to pass in the extra KeyEncoding field.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added case for decoding pkcs8 key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Converting decoded PKCS8 key into crypto.Signer.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added debugging log statements for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Log messages for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added logs for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added debug logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Add debug logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Modified keys package.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the key converter to the ssh package.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Testing decoding as pkcs1 key instead.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Trying to convert to crypto.Signer for PKCS8.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Converting to rsa.PrivateKey.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed return to type private key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changing parsing.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Cleaned up logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed logging info.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed debug logging.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fix parse test for new pkcs8 support.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed extra lines.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed extra lines and spaces.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed duplicate PKCS8 functions.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the KeyEncoding field from an int to a string.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed issue.go for issuers to pass in the certificate when encoding private key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Corrected capitalization of Spec.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the error message to use the correct variable.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed selfsigned issue.go to pass in certificate object instead of the keyEncoding.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed error format.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed test to pass in certificate variable into encoding private key function.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed syntax issue.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed parameter for encode private key function in parse_test.go.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed parse test for encode private key function.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed invalid syntax.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Moved the if statement.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Cleaned up go-fmt errors.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Ran bazel run //hack:update-reference-docs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed encode private key to take keyEncoding instead of certificate.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed setting keyEncoding for ca issue test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixing passing in the correct type for encoding private key.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixing passing in the correct type for encoding private key.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed parameter passed into encode private key for parse test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added unit test for encoding different private key types.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed key encoding field from existing test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added KeyEncoding spec value to Certificate type.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added validation for Certificate Spec field KeyEncoding.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added Encoding PKCS8 function for encoding private keys in generate.go.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Modified the call to the private key encoding function for each issuer in issue.go to pass in the extra KeyEncoding field.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added case for decoding pkcs8 key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Converting decoded PKCS8 key into crypto.Signer.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added debugging log statements for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Log messages for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added logs for decoding private keys.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added debug logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Add debug logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Modified keys package.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the key converter to the ssh package.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Testing decoding as pkcs1 key instead.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Trying to convert to crypto.Signer for PKCS8.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Converting to rsa.PrivateKey.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed return to type private key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changing parsing.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Cleaned up logs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed logging info.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed debug logging.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fix parse test for new pkcs8 support.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed extra lines.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed extra lines and spaces.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed duplicate PKCS8 functions.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the KeyEncoding field from an int to a string.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed issue.go for issuers to pass in the certificate when encoding private key.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Corrected capitalization of Spec.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed the error message to use the correct variable.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed selfsigned issue.go to pass in certificate object instead of the keyEncoding.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed error format.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed test to pass in certificate variable into encoding private key function.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed syntax issue.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed parameter for encode private key function in parse_test.go.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed parse test for encode private key function.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed invalid syntax.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Moved the if statement.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Cleaned up go-fmt errors.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Ran bazel run //hack:update-reference-docs.

Signed-off-by: Crystal Chun <crystalchun@crystals-mbp.raleigh.ibm.com>
Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Changed encode private key to take keyEncoding instead of certificate.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed setting keyEncoding for ca issue test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixing passing in the correct type for encoding private key.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixing passing in the correct type for encoding private key.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed parameter passed into encode private key for parse test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added unit test for encoding different private key types.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed key encoding field from existing test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed syntax error for declaring constant.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Moving private key all to one line.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added commas after each test case and changed the private key to a pkcs1 rsa private key.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed test errors.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added default error.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Predefined actualEncoding variable.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Undeclared actualEncoding variable.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Declared actualEncoding variable to nil.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Declared actualEncoding variable to empty key encoding type.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixed unit test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Ran update go-fmt.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Added e2e test for pkcs8 certificate.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Removed unused variable.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Creating issue in pkcs8 e2e test.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Fixing no new variables on the left side of := for err variable.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* Updated docs to mention the key encoding field.

Signed-off-by: Crystal Chun <crystalchun@Crystals-MacBook-Pro.local>

* change venafi issuer to support different cert encoding

Signed-off-by: Daniel Morsing <dmo@jetstack.io>

* update crds

Signed-off-by: Daniel Morsing <dmo@jetstack.io>
2019-06-18 11:34:03 +01:00
James Munnelly
a13543013d Use logr in pkg/util/kube
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-03-12 14:24:50 +00:00
James Munnelly
dfabece6eb Use a one-use CA to sign temporary certificates
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-02-25 20:48:13 +00:00
James Munnelly
439499561c Remove dependence on k8s.io/ingress
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-02-22 12:34:52 +00:00
James Munnelly
6c66185358 Fix bug when specify keyAlgorithm without an explicit keySize
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-02-04 17:34:56 +00:00
jetstack-bot
22b0863801
Merge pull request #1128 from lrolaz/certificate-ip-sans
Add IP Address in CSR
2019-01-31 23:05:25 +00:00
jetstack-bot
e848bcec57
Merge pull request #1191 from chr-fritz/parse-pkcs8
Adds key parser for PKCS#8 encoded private keys.
2019-01-31 22:49:26 +00:00
Laurent ROLAZ
ed82465df5 Refactoring
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-30 13:04:28 +01:00
Laurent Rolaz
597cda40af Fix some GO Style
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-25 18:50:16 +01:00
Laurent Rolaz
18daea16ae Remove duplicate IPAddressesToString
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-25 18:50:16 +01:00
Laurent Rolaz
c5fa202239 Fix some GO Style
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com> (+2 squashed commits)
Squashed commits:
[ce6cc2eb] Fix some GO Style

Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
[563b7275] Fix some GO Style

Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-25 18:50:16 +01:00
Laurent Rolaz
531c26061c GO Format
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>

Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-25 18:38:12 +01:00
Laurent Rolaz
6dcc408741 Add IP Address in CSR
Signed-off-by: Laurent Rolaz <laurent.rolaz@gmail.com>
2019-01-25 18:38:12 +01:00
James Munnelly
7fd1c2a0e3 Fix issuing a certificate into a pre-existing secret
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-01-15 14:44:11 +00:00
Christian Fritz
96ae76b89d
Adds key parser for PKCS#8 encoded private keys.
Signed-off-by: Christian Fritz <christian.fritz@qaware.de>
2019-01-14 08:46:52 +01:00
Mike Bryant
4fa6d9775c feat: Include entire certificate chain if provided
Allow a user to provide an entire certificate chain to the ca issuer. Include that chain in all generated certificates

Signed-off-by: Mike Bryant <m@ocado.com>
2019-01-09 11:39:48 +00:00
James Munnelly
0fcc0c666c Update copyright header year
Signed-off-by: James Munnelly <james@munnelly.eu>
2019-01-07 15:07:55 +00:00
James Munnelly
08882e5fc2 Wrap missing secret data errors with Invalid
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-29 01:18:43 +00:00
James Munnelly
f358d987ea Retrieve private key before certificate in kube TLS function
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-28 19:18:30 +00:00
James Munnelly
dc97dde2ef Make Certificate Ready condition behaviour consistent between all issuer types
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-28 17:00:51 +00:00
Max Ehrlich
bbd9249198 Configurable issuer duration and renewBefore Take 2 (#893)
* Configurable issuer duration and renewBefore [1/3]

This is part one of (probably) three parts manually moving the changes from commit 723015174a167d746323f506ab3575cfb243d8bd to the new master. This commit moves the basic functionality of configurable duration while skipping e2e tests and docs. It does not include new work.

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Configurable issuer duration and renewBefore [2/3]

This commit moves over most of the e2e testing updates, some things are intentionally left out as they may be obsolete

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Configurable issuer duration and renewBefore [3/3]

This commit moves the documentation changes, completely the migration of the original code to the latest master

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerunning all hack scripts with since the massive bazel update

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add missing boilerplate headers

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerun codegen hack

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerunning update-docs hack

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix failing unit tests

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix build errors in e2e tests

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerun update-deps

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Don't recreate the CA issuer, it already exists

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Need to create new issuers for the duration and renew time tests because those fields are set in the issuer, so make sure they are named uniquely

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add duration e2e tests for self-signed issuer

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add duration e2e tests for vault w/ custom mount path

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add validation to disallow acme certificates with duration and renewBefore set and update unit tests to verify

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Update docs to mention duration/renew for self-signed issuer and fix potential parsing errors with rst formatting

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Self-signed issuer was missing duration validation

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix a bug causing certificates with a short enough renew-before w.r.t their duration to be renewed instantly and forever

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Print the exact time until renewal

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Move duration and renwal validation to the issuer validation

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Update e2e tests to work with new validation

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add e2e test for the self-signed issuer

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Redo cert duration and renew before to appear as part of the CSR and not the issuer

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Updating tests to match new duration/renewbefore format

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Update e2e tests to match new format

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Update docs to reflect changing the field from issuers to certificates

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove event firing and replace with a TODO as of discussion on PR

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Run hack scripts

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove the sync unit test since without events there is no way to catch the warnings that it was testing

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Use IssuerOptions RenewBeforeExpiryDuration if certificates dont set a renewBefore value for immediate renewal checks

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Delete check on certificate data length in e2e test for certificate duration as there is no reason it should be there

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Update e2e tests since certificate creation will never generate an event

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerunning hack scripts after big rebase

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix a few problems that slipped through during the rebase

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix an e2e error that resulted from the rebase

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add unit test for the calculateTimeBeforeExpiry function

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Adding back in a bunch of missing error checks

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove unused function

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add missing boilerplate

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove unused constant

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Move log constants to function body

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerun hack scripts

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove mistakenly commited file

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove double-import of util package

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix bad function call in e2e vault issuer

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Change duration and renewBefore to be pointer fields as they are optional

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Remove wrong vault issuer test that got passed the rebase somehow

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Change e2e to use pointer format

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Move e2e cert tests out of issuer test file

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Move e2e self-signed issuer test to new location

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Make sure to check for nil in GenerateTemplate

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Add more empty checks to be safe

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Rerunning hacks after rebase

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix bad function call in new e2e test

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Try not setting duration and renewbefore on acme e2e tests

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Zero checks should really just be replaced by nil tests, zero should be caught as any other too-small value

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fixed a missing nil check that got away

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Change e2e duration test format to use pointer times to better simulate API calls

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix sync unit test to match e2e test format

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Fix vault e2e test

Signed-off-by: Max Ehrlich <max.ehr@gmail.com>

* Revert changes to Certificate sync function

Signed-off-by: James Munnelly <james@munnelly.eu>

* Remove selfsigned e2e issuer.go

Signed-off-by: James Munnelly <james@munnelly.eu>

* Don't use ACME issuer in duration example and tidy up line endings

Signed-off-by: James Munnelly <james@munnelly.eu>

* Allow renewBefore to be set on ACME certificates

Signed-off-by: James Munnelly <james@munnelly.eu>

* Update renewBefore ACME docs. Remove unused fields.

Signed-off-by: James Munnelly <james@munnelly.eu>

* Rename calculateTimeBeforeExpiry to calculateDurationUntilRenew

Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-14 22:30:00 +00:00
James Munnelly
fdfc7f2f77 Don't explicitly set SignatureAlgorithm on signed Certificate
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-07 11:14:54 +00:00
James Munnelly
ad0971288e Run update-gofmt
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-11-06 11:10:21 +00:00
Luke Mallon (Nalum)
e2e1077cc8
Update bazel build files
Signed-off-by: Luke Mallon (Nalum) <luke@mallon.io>
2018-10-29 15:59:54 +00:00
Luke Mallon (Nalum)
35f2d16ec8
Add tests to cover the version function
Signed-off-by: Luke Mallon (Nalum) <luke@mallon.io>
2018-10-27 18:32:07 +01:00
Luke Mallon (Nalum)
c4fc6d7373
Update version string
Only add the commit hash to the version string if the AppVersion is set
to canary. See #997

Signed-off-by: Luke Mallon (Nalum) <luke@mallon.io>
2018-10-27 17:33:45 +01:00
jetstack-bot
500957f37e
Merge pull request #968 from munnerz/sig-algo
Update SignatureAlgorithm function to also return PublicKey type
2018-10-16 15:03:37 +01:00
jetstack-bot
9eab875005
Merge pull request #967 from munnerz/unused-args
Remove unused arg from GenerateTemplate
2018-10-16 14:36:36 +01:00
James Munnelly
3b81bb594d Update unit tests
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 12:41:29 +01:00
James Munnelly
293bfd412f Update SignatureAlgorithm function to also return PublicKey type
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 12:31:24 +01:00
James Munnelly
03c6f1229f Remove unused arg from GenerateTemplate
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 12:29:38 +01:00
James Munnelly
09e0f1f188 Run //hack:update-bazel
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 10:27:04 +01:00
James Munnelly
f33561741f Remove unused/dead code
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 10:23:47 +01:00
James Munnelly
420683609b Add comments to pkg/util functions
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-16 10:16:34 +01:00
James Munnelly
84978d88d8 Add extra comments to acme and pki package
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-13 21:05:18 +01:00
James Munnelly
847d0c6152 Refactor controllers to return Response structures
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-10-12 12:40:38 +01:00
Max Ehrlich
41c7def791
Helper function to get PEM encoded bytes of x509 certs
Signed-off-by: Max Ehrlich <max.ehr@gmail.com>
2018-09-13 17:07:14 -04:00
James Munnelly
b1f145625e Set up Bazel workspace with git status and pass ldflags
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-09-13 11:24:52 +01:00
James Munnelly
db65d6a170 run //hack:update-bazel
Signed-off-by: James Munnelly <james@munnelly.eu>
2018-09-13 11:24:48 +01:00
Max Ehrlich
6a9f1d2348
Update code to allow setting multiple organizations
Signed-off-by: Max Ehrlich <max.ehr@gmail.com>
2018-09-08 16:21:13 -04:00
Max Ehrlich
340d2725e7
Generate certificates with the new organization field
Signed-off-by: Max Ehrlich <max.ehr@gmail.com>
2018-09-08 16:21:12 -04:00
James Munnelly
8d3d095a29 Add 'isCA' field to Certificate spec
Signed-off-by: James Munnelly <james.munnelly@jetstack.io>
2018-08-14 10:32:48 +01:00
James Munnelly
51195e4c5f Update license header and add header to every file
Signed-off-by: James Munnelly <james.munnelly@jetstack.io>
2018-08-13 15:53:37 +01:00
James Munnelly
2110aacc3b
Don't bundle the CA certificate when selfsigned 2018-08-09 16:32:10 +01:00
James Munnelly
503186c2d2 Add unit test for PublicKeyMatchesCertificate 2018-08-08 13:39:34 +01:00
James Munnelly
0dd3155fb2 Add logic to handle ready vs valid ACME orders 2018-08-08 13:39:34 +01:00
jetstack-bot
6348c6ffca
Merge pull request #722 from autonomic-ai/support-ec-keys
Add keyAlgorithm and keySize fields to Certificates, and support ECDSA keys
2018-07-18 10:00:36 +01:00
Afolabi Badmos
445e522432 Add support for EC keys
- This PR adds two fields to CertificateSpec:
  - `keyAlgorithm`, denotes which algorithm to use when generating
    a private key. Can be either `rsa` or `ecdsa`. When not set, the
    default algorithm used `rsa`.
  - `keySize`, denotes the key size of the private key being generated.
    For `rsa`, minimum key size is 2048 and maximum is 8192.
    For `ecdsa`, sizes 224, 256, 384 & 521 are supported.
    See https://golang.org/pkg/crypto/elliptic

- `keySize` can be set without being explicit about `keyAlgorithm`.
  - If `keySize` is specified and `keyAlgorithm` is not provided, `rsa` will
    be used as the key algorithm.

- `keyAlgorithm` can be set without being explicit about `keySize`.
  - If `keyAlgorithm` is specified and `keySize` is not provided, key size
    key size of `256` will be used for `ecdsa` key algorithm and
    key size of `2048` will be used for `rsa` key algorithm.

- helper functions in `pki` package now return crypto.PrivateKey
2018-07-17 12:42:07 -04:00
Louis Taylor
969c4530a0
Add Contains util function 2018-07-12 10:27:05 +01:00
James Munnelly
1fd8cdf13e Create common GenerateCSR and GenerateTemplate methods for creating Certificate/CertificateRequest 2018-06-08 15:15:27 +01:00
James Munnelly
b934852775 Merge branch 'master' into acmev2 2018-04-09 16:52:34 +01:00
Euan Kemp
6b4e33a483 util/useragent: use more verbose version 2018-04-06 18:09:52 -07:00
Euan Kemp
9c3b4e83b4 pkg/util/kube: set user-agent
This should make it slightly easier to filter api-server logs for
cert-manager activity
2018-04-06 18:09:17 -07:00
Euan Kemp
7f12fb346c issuer/acme: move 'user-agent' logic to util
This logic should be shared by things like the aws client as well.
2018-04-06 18:09:11 -07:00
James Munnelly
b866b8cdf4 Fix bug in EqualUnsorted when comparing lists of the same length 2018-04-04 23:40:08 +01:00
James Munnelly
f2ddd1d111 Change DNSNames/CommonNameForCertificate function to not return an error 2018-04-04 23:37:37 +01:00
James Munnelly
c3be0f204e Add ingress-shim controller to create Certificates based on annotations on ingress resources 2017-11-30 22:53:54 +00:00
jetstack-bot
e32147b695
Merge pull request #183 from munnerz/fix-issue-loop
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Improve validation of certificates. Fix bug in checking certificate validity

**What this PR does / why we need it**:

Improves the validation of dnsNames and commonNames on certificate resources.
Fixes a bug in checking certificate validity.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

Fixes #176, fixes #175

**Release note**:
```release-note
Fix a bug in checking certificate validity and improve validation of dnsNames and commonName
```
2017-11-04 01:00:30 +00:00
James Munnelly
ffbfe2da3d Use ordered RemoveDuplicates. Add additional test cases. 2017-11-04 00:44:08 +00:00
James Munnelly
74d711ceef Add unit tests for cert->dnsName and cert->CN functions 2017-11-04 00:10:42 +00:00
James Munnelly
f3db0df7b6 Add RemoveDuplicates unit test 2017-11-03 23:58:25 +00:00
James Munnelly
6ac437699d Improve validation of certificates. Fix bug in checking certificate validity 2017-11-03 23:48:18 +00:00
James Munnelly
422f8fc4be Add basic validation to ACME issuer 2017-11-03 23:35:58 +00:00
James Munnelly
fa7e052ac1 Move to github.com/jetstack/cert-manager repo 2017-11-03 16:41:39 +00:00
James Munnelly
eb4be6859e Update controllers and issuers for new SharedInformerFactory 2017-11-03 15:26:19 +00:00
James Munnelly
9d933d9e11 Only update certificate status in the controller package to stop conflicts 2017-10-13 20:15:29 +01:00
James Munnelly
01e5833825 Make acmesolver image configurable through CLI. Use tagged version as default. 2017-10-13 16:39:06 +01:00
James Munnelly
187e91f9ae Default commonName to first altName if not specified 2017-10-13 12:50:07 +01:00
James Munnelly
f8107e6fcc Use CommonName and AltNames fields on Certificate resource 2017-10-13 12:50:07 +01:00
James Munnelly
a2d9733f21 Update implementation for new field names/types 2017-10-13 11:43:52 +01:00
James Munnelly
852e250a69 Add clusterissuer controller 2017-09-22 00:10:42 +01:00
James Munnelly
940b26127b Create context for each resource to be processed 2017-09-21 20:26:27 +01:00
James Munnelly
89588bb281 Split GetKeyPair method into two methods 2017-09-10 22:54:55 +01:00
James Munnelly
2e551f58b5 Update ACME implementation for new structure. Add util/pki. 2017-09-10 21:13:37 +01:00
James Munnelly
dc4335754f Move kube related utilities out of cmd 2017-09-10 21:11:34 +01:00