aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java
diff options
context:
space:
mode:
authorVincent <valodim@mugenguild.com>2016-02-10 18:39:55 +0100
committerVincent <valodim@mugenguild.com>2016-02-10 18:39:55 +0100
commit2eac4ebb950c9f36fbb8852b4266529065ff6731 (patch)
treeda193d233e2f753e2c31d9c446f4c2cb5ad23248 /OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java
parenta94713103b6c72136fbf4886bf561616b2a01e4e (diff)
parentda6dfb57a0aa816919cd23752e1707ba6a2e8cae (diff)
downloadopen-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.tar.gz
open-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.tar.bz2
open-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.zip
Merge pull request #1708 from open-keychain/performance
performance improvements
Diffstat (limited to 'OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java')
-rw-r--r--OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java b/OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java
new file mode 100644
index 000000000..72d6036ab
--- /dev/null
+++ b/OpenKeychain/src/main/java/org/bouncycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java
@@ -0,0 +1,32 @@
+package org.bouncycastle.openpgp.jcajce;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.bouncycastle.openpgp.PGPMarker;
+
+/** This class wraps the regular PGPObjectFactory, changing its behavior to
+ * ignore all PGPMarker packets it encounters while reading. These packets
+ * carry no semantics of their own, and should be ignored according to
+ * RFC 4880.
+ *
+ * @see https://tools.ietf.org/html/rfc4880#section-5.8
+ * @see org.bouncycastle.openpgp.PGPMarker
+ *
+ */
+public class JcaSkipMarkerPGPObjectFactory extends JcaPGPObjectFactory {
+
+ public JcaSkipMarkerPGPObjectFactory(InputStream in) {
+ super(in);
+ }
+
+ @Override
+ public Object nextObject() throws IOException {
+ Object o = super.nextObject();
+ while (o instanceof PGPMarker) {
+ o = super.nextObject();
+ }
+ return o;
+ }
+}