aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/spongycastle/openpgp/jcajce/JcaSkipMarkerPGPObjectFactory.java
blob: 72d6036ab3014abc6c271f4922ea0e4db2ce048a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
    }
}