bergenerator.java
来自「J2ME加密算法的代码!里面包括常用的算法」· Java 代码 · 共 101 行
JAVA
101 行
package org.bouncycastle.asn1;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class BERGenerator extends ASN1Generator{ private boolean _tagged = false; private boolean _isExplicit; private int _tagNo; protected BERGenerator( OutputStream out) { super(out); } public BERGenerator( OutputStream out, int tagNo, boolean isExplicit) { super(out); _tagged = true; _isExplicit = isExplicit; _tagNo = tagNo; } public OutputStream getRawOutputStream() { return _out; } private void writeHdr( int tag) throws IOException { _out.write(tag); _out.write(0x80); } protected void writeBERHeader( int tag) throws IOException { int tagNum = _tagNo | DERTags.TAGGED; if (_tagged) { if (_isExplicit) { writeHdr(tagNum | DERTags.CONSTRUCTED); writeHdr(tag); } else { if ((tag & DERTags.CONSTRUCTED) != 0) { writeHdr(tagNum | DERTags.CONSTRUCTED); } else { writeHdr(tagNum); } } } else { writeHdr(tag); } } protected void writeBERBody( InputStream contentStream) throws IOException { int ch; while ((ch = contentStream.read()) >= 0) { _out.write(ch); } } protected void writeBEREnd() throws IOException { _out.write(0x00); _out.write(0x00); if (_tagged && _isExplicit) // write extra end for tag header { _out.write(0x00); _out.write(0x00); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?