aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-07-23 22:38:46 -0700
committerKenny Root <kenny@the-b.org>2015-07-24 15:35:39 -0700
commit147dae0102979a0217ac8a9eea82a4969a1ecf63 (patch)
tree40718fac7fc6a3afce07c910ffc243dd5d69d403 /app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java
parent739337624a5e69221a998cf10b1fd34fcc5ecd2d (diff)
downloadconnectbot-147dae0102979a0217ac8a9eea82a4969a1ecf63.tar.gz
connectbot-147dae0102979a0217ac8a9eea82a4969a1ecf63.tar.bz2
connectbot-147dae0102979a0217ac8a9eea82a4969a1ecf63.zip
Move to library-based build
Diffstat (limited to 'app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java')
-rw-r--r--app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java229
1 files changed, 0 insertions, 229 deletions
diff --git a/app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java b/app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java
deleted file mode 100644
index ff8112a..0000000
--- a/app/src/main/java/com/trilead/ssh2/crypto/SimpleDERReader.java
+++ /dev/null
@@ -1,229 +0,0 @@
-package com.trilead.ssh2.crypto;
-
-import java.io.IOException;
-
-import java.math.BigInteger;
-
-/**
- * SimpleDERReader.
- *
- * @author Christian Plattner, plattner@trilead.com
- * @version $Id: SimpleDERReader.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $
- */
-public class SimpleDERReader
-{
- private static final int CONSTRUCTED = 0x20;
-
- byte[] buffer;
- int pos;
- int count;
-
- public SimpleDERReader(byte[] b)
- {
- resetInput(b);
- }
-
- public SimpleDERReader(byte[] b, int off, int len)
- {
- resetInput(b, off, len);
- }
-
- public void resetInput(byte[] b)
- {
- resetInput(b, 0, b.length);
- }
-
- public void resetInput(byte[] b, int off, int len)
- {
- buffer = b;
- pos = off;
- count = len;
- }
-
- private byte readByte() throws IOException
- {
- if (count <= 0)
- throw new IOException("DER byte array: out of data");
- count--;
- return buffer[pos++];
- }
-
- private byte[] readBytes(int len) throws IOException
- {
- if (len > count)
- throw new IOException("DER byte array: out of data");
-
- byte[] b = new byte[len];
-
- System.arraycopy(buffer, pos, b, 0, len);
-
- pos += len;
- count -= len;
-
- return b;
- }
-
- public int available()
- {
- return count;
- }
-
- private int readLength() throws IOException
- {
- int len = readByte() & 0xff;
-
- if ((len & 0x80) == 0)
- return len;
-
- int remain = len & 0x7F;
-
- if (remain == 0)
- return -1;
-
- len = 0;
-
- while (remain > 0)
- {
- len = len << 8;
- len = len | (readByte() & 0xff);
- remain--;
- }
-
- return len;
- }
-
- public int ignoreNextObject() throws IOException
- {
- int type = readByte() & 0xff;
-
- int len = readLength();
-
- if ((len < 0) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- readBytes(len);
-
- return type;
- }
-
- public BigInteger readInt() throws IOException
- {
- int type = readByte() & 0xff;
-
- if (type != 0x02)
- throw new IOException("Expected DER Integer, but found type " + type);
-
- int len = readLength();
-
- if ((len < 0) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- byte[] b = readBytes(len);
-
- BigInteger bi = new BigInteger(b);
-
- return bi;
- }
-
- public int readConstructedType() throws IOException {
- int type = readByte() & 0xff;
-
- if ((type & CONSTRUCTED) != CONSTRUCTED)
- throw new IOException("Expected constructed type, but was " + type);
-
- return type & 0x1f;
- }
-
- public SimpleDERReader readConstructed() throws IOException
- {
- int len = readLength();
-
- if ((len < 0) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- SimpleDERReader cr = new SimpleDERReader(buffer, pos, len);
-
- pos += len;
- count -= len;
-
- return cr;
- }
-
- public byte[] readSequenceAsByteArray() throws IOException
- {
- int type = readByte() & 0xff;
-
- if (type != 0x30)
- throw new IOException("Expected DER Sequence, but found type " + type);
-
- int len = readLength();
-
- if ((len < 0) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- byte[] b = readBytes(len);
-
- return b;
- }
-
- public String readOid() throws IOException
- {
- int type = readByte() & 0xff;
-
- if (type != 0x06)
- throw new IOException("Expected DER OID, but found type " + type);
-
- int len = readLength();
-
- if ((len < 1) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- byte[] b = readBytes(len);
-
- long value = 0;
-
- StringBuilder sb = new StringBuilder(64);
- switch(b[0] / 40) {
- case 0:
- sb.append('0');
- break;
- case 1:
- sb.append('1');
- b[0] -= 40;
- break;
- default:
- sb.append('2');
- b[0] -= 80;
- break;
- }
-
- for (int i = 0; i < len; i++) {
- value = (value << 7) + (b[i] & 0x7F);
- if ((b[i] & 0x80) == 0) {
- sb.append('.');
- sb.append(value);
- value = 0;
- }
- }
-
- return sb.toString();
- }
-
- public byte[] readOctetString() throws IOException
- {
- int type = readByte() & 0xff;
-
- if (type != 0x04 && type != 0x03)
- throw new IOException("Expected DER Octetstring, but found type " + type);
-
- int len = readLength();
-
- if ((len < 0) || len > available())
- throw new IOException("Illegal len in DER object (" + len + ")");
-
- byte[] b = readBytes(len);
-
- return b;
- }
-
-}