summary refs log tree commit diff
path: root/crypto/src/cmp
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/cmp')
-rw-r--r--crypto/src/cmp/RevocationDetails.cs39
-rw-r--r--crypto/src/cmp/RevocationDetailsBuilder.cs58
2 files changed, 97 insertions, 0 deletions
diff --git a/crypto/src/cmp/RevocationDetails.cs b/crypto/src/cmp/RevocationDetails.cs
new file mode 100644
index 000000000..6e1cb34c3
--- /dev/null
+++ b/crypto/src/cmp/RevocationDetails.cs
@@ -0,0 +1,39 @@
+using Org.BouncyCastle.Asn1.Cmp;
+using Org.BouncyCastle.Asn1.X509;
+using Org.BouncyCastle.Math;
+
+namespace Org.BouncyCastle.Cmp
+{
+    public class RevocationDetails
+    {
+        private RevDetails revDetails;
+
+        public RevocationDetails(RevDetails revDetails)
+        {
+            this.revDetails = revDetails;
+        }
+
+        public X509Name Subject
+        {
+            get { return revDetails.CertDetails.Subject; }
+        }
+
+        public X509Name Issuer
+        {
+            get { return revDetails.CertDetails.Issuer; }
+        }
+
+        public BigInteger SerialNumber
+        {
+            get
+            {
+                return revDetails.CertDetails.SerialNumber.Value; //   getCertDetails().getSerialNumber().getValue();
+            }
+        }
+
+        public RevDetails ToASN1Structure()
+        {
+            return revDetails;
+        }
+    }
+}
\ No newline at end of file
diff --git a/crypto/src/cmp/RevocationDetailsBuilder.cs b/crypto/src/cmp/RevocationDetailsBuilder.cs
new file mode 100644
index 000000000..464c0bb13
--- /dev/null
+++ b/crypto/src/cmp/RevocationDetailsBuilder.cs
@@ -0,0 +1,58 @@
+using Org.BouncyCastle.Asn1;
+using Org.BouncyCastle.Asn1.Cmp;
+using Org.BouncyCastle.Asn1.Crmf;
+using Org.BouncyCastle.Asn1.X509;
+using Org.BouncyCastle.Math;
+
+namespace Org.BouncyCastle.Cmp
+{
+    public class RevocationDetailsBuilder
+    {
+        private readonly CertTemplateBuilder _templateBuilder = new CertTemplateBuilder();
+
+        public RevocationDetailsBuilder SetPublicKey(SubjectPublicKeyInfo publicKey)
+        {
+            if (publicKey != null)
+            {
+                _templateBuilder.SetPublicKey(publicKey);
+            }
+
+            return this;
+        }
+
+        public RevocationDetailsBuilder SetIssuer(X509Name issuer)
+        {
+            if (issuer != null)
+            {
+                _templateBuilder.SetIssuer(issuer);
+            }
+
+            return this;
+        }
+
+        public RevocationDetailsBuilder SetSerialNumber(BigInteger serialNumber)
+        {
+            if (serialNumber != null)
+            {
+                _templateBuilder.SetSerialNumber(new DerInteger(serialNumber));
+            }
+
+            return this;
+        }
+
+        public RevocationDetailsBuilder SetSubject(X509Name subject)
+        {
+            if (subject != null)
+            {
+                _templateBuilder.SetSubject(subject);
+            }
+
+            return this;
+        }
+
+        public RevocationDetails build()
+        {
+            return new RevocationDetails(new RevDetails(_templateBuilder.Build()));
+        }
+    }
+}
\ No newline at end of file