deroutputstream.java

来自「进行与数字证书相关开发必须的java源码」· Java 代码 · 共 71 行

JAVA
71
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   DEROutputStream.java

package jit.asn1;

import java.io.*;

// Referenced classes of package jit.asn1:
//            DERObject, DEREncodable, DERTags

public class DEROutputStream extends FilterOutputStream
    implements DERTags
{

    public DEROutputStream(OutputStream os)
    {
        super(os);
    }

    private void writeLength(int length)
        throws IOException
    {
        if(length > 127)
        {
            int size = 1;
            for(int val = length; (val >>>= 8) != 0;)
                size++;

            write((byte)(size | 0x80));
            for(int i = (size - 1) * 8; i >= 0; i -= 8)
                write((byte)(length >> i));

        } else
        {
            write((byte)length);
        }
    }

    void writeEncoded(int tag, byte bytes[])
        throws IOException
    {
        write(tag);
        writeLength(bytes.length);
        write(bytes);
    }

    protected void writeNull()
        throws IOException
    {
        write(5);
        write(0);
    }

    public void writeObject(Object obj)
        throws IOException
    {
        if(obj == null)
            writeNull();
        else
        if(obj instanceof DERObject)
            ((DERObject)obj).encode(this);
        else
        if(obj instanceof DEREncodable)
            ((DEREncodable)obj).getDERObject().encode(this);
        else
            throw new IOException("object not DEREncodable");
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?