using System; namespace Org.BouncyCastle.Asn1.Cmp { /** *
     * PKIFailureInfo ::= BIT STRING {
     * badAlg               (0),
     *   -- unrecognized or unsupported Algorithm Identifier
     * badMessageCheck      (1), -- integrity check failed (e.g., signature did not verify)
     * badRequest           (2),
     *   -- transaction not permitted or supported
     * badTime              (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
     * badCertId            (4), -- no certificate could be found matching the provided criteria
     * badDataFormat        (5),
     *   -- the data submitted has the wrong format
     * wrongAuthority       (6), -- the authority indicated in the request is different from the one creating the response token
     * incorrectData        (7), -- the requester's data is incorrect (for notary services)
     * missingTimeStamp     (8), -- when the timestamp is missing but should be there (by policy)
     * badPOP               (9)  -- the proof-of-possession failed
     * certRevoked         (10),
     * certConfirmed       (11),
     * wrongIntegrity      (12),
     * badRecipientNonce   (13),
     * timeNotAvailable    (14),
     *   -- the TSA's time source is not available
     * unacceptedPolicy    (15),
     *   -- the requested TSA policy is not supported by the TSA
     * unacceptedExtension (16),
     *   -- the requested extension is not supported by the TSA
     * addInfoNotAvailable (17)
     *   -- the additional information requested could not be understood
     *   -- or is not available
     * badSenderNonce      (18),
     * badCertTemplate     (19),
     * signerNotTrusted    (20),
     * transactionIdInUse  (21),
     * unsupportedVersion  (22),
     * notAuthorized       (23),
     * systemUnavail       (24),
     * systemFailure       (25),
     *   -- the request cannot be handled due to system failure
     * duplicateCertReq    (26)
     * 
*/ public class PkiFailureInfo : DerBitString { public const int BadAlg = (1 << 7); // unrecognized or unsupported Algorithm Identifier public const int BadMessageCheck = (1 << 6); // integrity check failed (e.g., signature did not verify) public const int BadRequest = (1 << 5); public const int BadTime = (1 << 4); // -- messageTime was not sufficiently close to the system time, as defined by local policy public const int BadCertId = (1 << 3); // no certificate could be found matching the provided criteria public const int BadDataFormat = (1 << 2); public const int WrongAuthority = (1 << 1); // the authority indicated in the request is different from the one creating the response token public const int IncorrectData = 1; // the requester's data is incorrect (for notary services) public const int MissingTimeStamp = (1 << 15); // when the timestamp is missing but should be there (by policy) public const int BadPop = (1 << 14); // the proof-of-possession failed public const int CertRevoked = (1 << 13); public const int CertConfirmed = (1 << 12); public const int WrongIntegrity = (1 << 11); public const int BadRecipientNonce = (1 << 10); public const int TimeNotAvailable = (1 << 9); // the TSA's time source is not available public const int UnacceptedPolicy = (1 << 8); // the requested TSA policy is not supported by the TSA public const int UnacceptedExtension = (1 << 23); //the requested extension is not supported by the TSA public const int AddInfoNotAvailable = (1 << 22); //the additional information requested could not be understood or is not available public const int BadSenderNonce = (1 << 21); public const int BadCertTemplate = (1 << 20); public const int SignerNotTrusted = (1 << 19); public const int TransactionIdInUse = (1 << 18); public const int UnsupportedVersion = (1 << 17); public const int NotAuthorized = (1 << 16); public const int SystemUnavail = (1 << 31); public const int SystemFailure = (1 << 30); //the request cannot be handled due to system failure public const int DuplicateCertReq = (1 << 29); /** * Basic constructor. */ public PkiFailureInfo(int info) : base(info) { } public PkiFailureInfo( DerBitString info) : base(info.GetBytes(), info.PadBits) { } public override string ToString() { return "PkiFailureInfo: 0x" + this.IntValue.ToString("X"); } } }