summaryrefslogtreecommitdiffstats
path: root/base/ca/shared
diff options
context:
space:
mode:
authorChristina Fu <cfu@redhat.com>2017-05-19 11:55:14 -0700
committerChristina Fu <cfu@redhat.com>2017-05-22 09:39:55 -0700
commit8aafe1d4345f8b8d20b2f87c68b2e6be4eee18eb (patch)
tree7c47fc7fe49d48c2a442bb386fc4372b2d630842 /base/ca/shared
parent62841380c6400023cf973e273ab974352885fabd (diff)
downloadpki-8aafe1d4345f8b8d20b2f87c68b2e6be4eee18eb.tar.gz
pki-8aafe1d4345f8b8d20b2f87c68b2e6be4eee18eb.tar.xz
pki-8aafe1d4345f8b8d20b2f87c68b2e6be4eee18eb.zip
Ticket#2618 feature: pre-signed CMC renewal request
This patch provides the feature implementation to allow CA to process pre-signed CMC renewal requests. In the world of CMC, renewal request are full CMC requests that are signed by previously issued signing certificate. The implementation approach is to use the caFullCMCUserSignedCert with the enhanced profile constraint: UniqueKeyConstraint. UniqueKeyConstraint has been updated to disallow renewal of same key shared by a revoked certificate. It also saves the origNotAfter of the newest certificate sharing the same key in the request to be used by the RenewGracePeriodConstraint. To not interfere with the existing "renewal by serial" flow, if an existing origNotAfter is found, it is not overwritten. The profile caFullCMCUserSignedCert.cfg has been updated to have both UniqueKeyConstraint and RenewGracePeriodConstraint. They must be placed in the correct order. By default in the UniqueKeyConstraint the constraint parameter allowSameKeyRenewal=true.
Diffstat (limited to 'base/ca/shared')
-rw-r--r--base/ca/shared/profiles/ca/caFullCMCUserSignedCert.cfg13
1 files changed, 12 insertions, 1 deletions
diff --git a/base/ca/shared/profiles/ca/caFullCMCUserSignedCert.cfg b/base/ca/shared/profiles/ca/caFullCMCUserSignedCert.cfg
index 229a3cdfb..63a4bcaf2 100644
--- a/base/ca/shared/profiles/ca/caFullCMCUserSignedCert.cfg
+++ b/base/ca/shared/profiles/ca/caFullCMCUserSignedCert.cfg
@@ -10,12 +10,23 @@ input.i2.class_id=submitterInfoInputImpl
output.list=o1
output.o1.class_id=certOutputImpl
policyset.list=cmcUserCertSet
-policyset.cmcUserCertSet.list=1,2,3,4,5,6,7,8
+policyset.cmcUserCertSet.list=1,9,10,2,3,4,5,6,7,8
policyset.cmcUserCertSet.1.constraint.class_id=cmcUserSignedSubjectNameConstraintImpl
policyset.cmcUserCertSet.1.constraint.name=CMC User Signed Subject Name Constraint
policyset.cmcUserCertSet.1.default.class_id=cmcUserSignedSubjectNameDefaultImpl
policyset.cmcUserCertSet.1.default.name=User Signed Subject Name Default
policyset.cmcUserCertSet.1.default.params.name=
+policyset.cmcUserCertSet.9.constraint.class_id=uniqueKeyConstraintImpl
+policyset.cmcUserCertSet.9.constraint.name=Unique Key Constraint
+policyset.cmcUserCertSet.9.constraint.params.allowSameKeyRenewal=true
+policyset.cmcUserCertSet.9.default.class_id=noDefaultImpl
+policyset.cmcUserCertSet.9.default.name=No Default
+policyset.cmcUserCertSet.10.constraint.class_id=renewGracePeriodConstraintImpl
+policyset.cmcUserCertSet.10.constraint.name=Renewal Grace Period Constraint
+policyset.cmcUserCertSet.10.constraint.params.renewal.graceBefore=30
+policyset.cmcUserCertSet.10.constraint.params.renewal.graceAfter=30
+policyset.cmcUserCertSet.10.default.class_id=noDefaultImpl
+policyset.cmcUserCertSet.10.default.name=No Default
policyset.cmcUserCertSet.2.constraint.class_id=validityConstraintImpl
policyset.cmcUserCertSet.2.constraint.name=Validity Constraint
policyset.cmcUserCertSet.2.constraint.params.notAfterCheck=false