|
3 | 3 | using System.IO;
|
4 | 4 | using System.Text;
|
5 | 5 | using Org.BouncyCastle.Asn1;
|
| 6 | +using Org.BouncyCastle.Asn1.Cmp; |
6 | 7 | using Org.BouncyCastle.Asn1.Cms;
|
7 | 8 | using Org.BouncyCastle.Asn1.Ess;
|
8 | 9 | using Org.BouncyCastle.Asn1.Oiw;
|
@@ -31,7 +32,7 @@ public class TimeStampTokenGenerator
|
31 | 32 | private int accuracyMicros = -1;
|
32 | 33 | private bool ordering = false;
|
33 | 34 | private GeneralName tsa = null;
|
34 |
| - private String tsaPolicyOID; |
| 35 | + private DerObjectIdentifier tsaPolicyOID; |
35 | 36 |
|
36 | 37 | private IX509Store x509Certs;
|
37 | 38 | private IX509Store x509Crls;
|
@@ -68,7 +69,7 @@ public TimeStampTokenGenerator(
|
68 | 69 |
|
69 | 70 | this.signerInfoGenerator = signerInfoGen;
|
70 | 71 | this.digestCalculator = digestCalculator;
|
71 |
| - this.tsaPolicyOID = tsaPolicy.Id; |
| 72 | + this.tsaPolicyOID = tsaPolicy; |
72 | 73 |
|
73 | 74 | if (signerInfoGenerator.certificate == null)
|
74 | 75 | {
|
@@ -138,12 +139,8 @@ public TimeStampTokenGenerator(
|
138 | 139 | Asn1.Cms.AttributeTable unsignedAttr) : this(
|
139 | 140 | makeInfoGenerator(key, cert, digestOID, signedAttr, unsignedAttr),
|
140 | 141 | Asn1DigestFactory.Get(OiwObjectIdentifiers.IdSha1),
|
141 |
| - tsaPolicyOID != null?new DerObjectIdentifier(tsaPolicyOID):null, false) |
| 142 | + tsaPolicyOID != null ? new DerObjectIdentifier(tsaPolicyOID):null, false) |
142 | 143 | {
|
143 |
| - |
144 |
| - this.tsaPolicyOID = tsaPolicyOID; |
145 |
| - |
146 |
| - |
147 | 144 | }
|
148 | 145 |
|
149 | 146 |
|
@@ -261,7 +258,7 @@ public TimeStampToken Generate(
|
261 | 258 | }
|
262 | 259 |
|
263 | 260 |
|
264 |
| - public TimeStampToken Generate( |
| 261 | + public TimeStampToken Generate( |
265 | 262 | TimeStampRequest request,
|
266 | 263 | BigInteger serialNumber,
|
267 | 264 | DateTime genTime, X509Extensions additionalExtensions)
|
@@ -306,13 +303,17 @@ public TimeStampToken Generate(
|
306 | 303 | {
|
307 | 304 | nonce = new DerInteger(request.Nonce);
|
308 | 305 | }
|
309 |
| - |
310 |
| - DerObjectIdentifier tsaPolicy = new DerObjectIdentifier(tsaPolicyOID); |
| 306 | + |
| 307 | + DerObjectIdentifier tsaPolicy = tsaPolicyOID; |
311 | 308 | if (request.ReqPolicy != null)
|
312 | 309 | {
|
313 | 310 | tsaPolicy = new DerObjectIdentifier(request.ReqPolicy);
|
314 | 311 | }
|
315 | 312 |
|
| 313 | + if (tsaPolicy == null) |
| 314 | + { |
| 315 | + throw new TspValidationException("request contains no policy", PkiFailureInfo.UnacceptedPolicy); |
| 316 | + } |
316 | 317 |
|
317 | 318 | X509Extensions respExtensions = request.Extensions;
|
318 | 319 | if (additionalExtensions != null)
|
@@ -344,7 +345,8 @@ public TimeStampToken Generate(
|
344 | 345 | if (resolution != Resolution.R_SECONDS)
|
345 | 346 | {
|
346 | 347 | generalizedTime = new DerGeneralizedTime(createGeneralizedTime(genTime));
|
347 |
| - } else |
| 348 | + } |
| 349 | + else |
348 | 350 | {
|
349 | 351 | generalizedTime = new DerGeneralizedTime(genTime);
|
350 | 352 | }
|
|
0 commit comments