diff options
author | Parménides GV <parmegv@sdf.org> | 2014-05-14 20:05:30 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-05-14 20:05:30 +0200 |
commit | b79fd315dd89e7a9f648c6a500b41ce7d9970081 (patch) | |
tree | 862d3f5c68773589c1bed0e82ac1efda2d8ba541 /app/src/main/java/org | |
parent | 0125b1a65c7c7cb31f0fde597b12d722c289e3f4 (diff) |
Copy all java files from ics-openvpn.
imports from se.leap.bitmaskclient java files have also been updated.
WARNING: compiling errors for de.blinkt.openvpn.R, aidl.de.blinkt.openvpn.
Diffstat (limited to 'app/src/main/java/org')
-rw-r--r-- | app/src/main/java/org/spongycastle/util/io/pem/PemReader.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/app/src/main/java/org/spongycastle/util/io/pem/PemReader.java b/app/src/main/java/org/spongycastle/util/io/pem/PemReader.java new file mode 100644 index 00000000..cbbebab9 --- /dev/null +++ b/app/src/main/java/org/spongycastle/util/io/pem/PemReader.java @@ -0,0 +1,84 @@ +package org.spongycastle.util.io.pem; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.Reader; +import java.util.ArrayList; +import java.util.List; + +import org.spongycastle.util.encoders.Base64; + +public class PemReader + extends BufferedReader +{ + private static final String BEGIN = "-----BEGIN "; + private static final String END = "-----END "; + + public PemReader(Reader reader) + { + super(reader); + } + + public PemObject readPemObject() + throws IOException + { + String line = readLine(); + + while (line != null && !line.startsWith(BEGIN)) + { + line = readLine(); + } + + if (line != null) + { + line = line.substring(BEGIN.length()); + int index = line.indexOf('-'); + String type = line.substring(0, index); + + if (index > 0) + { + return loadObject(type); + } + } + + return null; + } + + private PemObject loadObject(String type) + throws IOException + { + String line; + String endMarker = END + type; + StringBuffer buf = new StringBuffer(); + List headers = new ArrayList(); + + while ((line = readLine()) != null) + { + if (line.indexOf(":") >= 0) + { + int index = line.indexOf(':'); + String hdr = line.substring(0, index); + String value = line.substring(index + 1).trim(); + + headers.add(new PemHeader(hdr, value)); + + continue; + } + + if (line.indexOf(endMarker) != -1) + { + break; + } + + buf.append(line.trim()); + } + + if (line == null) + { + throw new IOException(endMarker + " not found"); + } + + return new PemObject(type, headers, Base64.decode(buf.toString())); + } + +} |