@@ -141,27 +141,37 @@ protected override void ProcessRecord()
141141 // If a subject name override is provided, create a new CertificateRequest
142142 if ( Subjectname is null )
143143 {
144+ WriteDebug ( "No Subjectname provided, using the submitted CertificateRequest as is." ) ;
144145 _request = ( CertificateRequest ) CertificateRequest ! . BaseObject ;
145146 }
146147 else
147148 {
148149 if ( ( ( CertificateRequest ) CertificateRequest ! . BaseObject ) . PublicKey . Oid . FriendlyName == "RSA" )
149150 {
151+ WriteDebug ( "Subjectname submitted, building new RSA Certificate Request" ) ;
150152 _request = new CertificateRequest ( Subjectname , ( ( CertificateRequest ) CertificateRequest ! . BaseObject ) . PublicKey . GetRSAPublicKey ( ) ! , HashAlgorithm , RSASignaturePadding . Pkcs1 ) ;
151153 }
152- else
154+ else if ( ( ( CertificateRequest ) CertificateRequest ! . BaseObject ) . PublicKey . Oid . FriendlyName == "ECDSA" )
153155 {
156+ WriteDebug ( "Subjectname submitted, building new ECDSA Certificate Request" ) ;
154157 _request = new CertificateRequest ( Subjectname , ( ( CertificateRequest ) CertificateRequest ! . BaseObject ) . PublicKey . GetECDsaPublicKey ( ) ! , HashAlgorithm ) ;
155158 }
159+ else
160+ {
161+ WriteError ( new ErrorRecord ( new Exception ( "Unknown public key algorithm in CertificateRequest" ) , "UnknownPublicKeyAlgorithm" , ErrorCategory . InvalidArgument , null ) ) ;
162+ return ;
163+ }
156164 }
157165
158166 // Add certificate extensions
159167 if ( CertificateAuthority . IsPresent )
160168 {
169+ WriteDebug ( "Adding constraings for CA usage" ) ;
161170 _request . CertificateExtensions . Add ( new X509BasicConstraintsExtension ( true , true , 2 , true ) ) ;
162171 }
163172 else
164173 {
174+ WriteDebug ( "Adding constraints for non CA usage" ) ;
165175 _request . CertificateExtensions . Add ( new X509BasicConstraintsExtension ( false , false , 0 , true ) ) ;
166176 _request . CertificateExtensions . Add ( new X509KeyUsageExtension ( KeyUsage , true ) ) ;
167177 _request . CertificateExtensions . Add ( new X509EnhancedKeyUsageExtension ( new OidCollection { new Oid ( "1.3.6.1.5.5.7.3.1" ) , new Oid ( "1.3.6.1.5.5.7.3.2" ) , new Oid ( "1.3.6.1.4.1.311.20.2.2" ) } , false ) ) ;
0 commit comments