Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.naming.jmod - Naming Module
JDK 11 java.naming.jmod is the JMOD file for JDK 11 Naming module.
JDK 11 Naming module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.naming.jmod.
JDK 11 Naming module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Naming module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.naming.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/jndi/ldap/BerEncoder.java
/* * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.jndi.ldap; import java.io.UnsupportedEncodingException; /** * A BER encoder. * * @author Jagane Sundar * @author Scott Seligman * @author Vincent Ryan */ public final class BerEncoder extends Ber { private int curSeqIndex; private int seqOffset[]; private static final int INITIAL_SEQUENCES = 16; private static final int DEFAULT_BUFSIZE = 1024; // When buf is full, expand its size by the following factor. private static final int BUF_GROWTH_FACTOR = 8; /** * Creates a BER buffer for encoding. */ public BerEncoder() { this(DEFAULT_BUFSIZE); } /** * Creates a BER buffer of a specified size for encoding. * Specify the initial bufsize. Buffer will be expanded as needed. * @param bufsize The number of bytes for the buffer. */ public BerEncoder(int bufsize) { buf = new byte[bufsize]; this.bufsize = bufsize; offset = 0; seqOffset = new int[INITIAL_SEQUENCES]; curSeqIndex = 0; } /** * Resets encoder to state when newly constructed. Zeros out * internal data structures. */ public void reset() { while (offset > 0) { buf[--offset] = 0; } while (curSeqIndex > 0) { seqOffset[--curSeqIndex] = 0; } } // ------------------ Accessor methods ------------ /** * Gets the number of encoded bytes in this BER buffer. */ public int getDataLen() { return offset; } /** * Gets the buffer that contains the BER encoding. Throws an * exception if unmatched beginSeq() and endSeq() pairs were * encountered. Not entire buffer contains encoded bytes. * Use getDataLen() to determine number of encoded bytes. * Use getBuffer(true) to get rid of excess bytes in array. * @throws IllegalStateException If buffer contains unbalanced sequence. */ public byte[] getBuf() { if (curSeqIndex != 0) { throw new IllegalStateException("BER encode error: Unbalanced SEQUENCEs."); } return buf; // shared buffer, be careful to use this method. } /** * Gets the buffer that contains the BER encoding, trimming unused bytes. * * @throws IllegalStateException If buffer contains unbalanced sequence. */ public byte[] getTrimmedBuf() { int len = getDataLen(); byte[] trimBuf = new byte[len]; System.arraycopy(getBuf(), 0, trimBuf, 0, len); return trimBuf; } // -------------- encoding methods ------------- /** * Begin encoding a sequence with a tag. */ public void beginSeq(int tag) { // Double the size of the SEQUENCE array if it overflows if (curSeqIndex >= seqOffset.length) { int[] seqOffsetTmp = new int[seqOffset.length * 2]; for (int i = 0; i < seqOffset.length; i++) { seqOffsetTmp[i] = seqOffset[i]; } seqOffset = seqOffsetTmp; } encodeByte(tag); seqOffset[curSeqIndex] = offset; // Save space for sequence length. // %%% Currently we save enough space for sequences up to 64k. // For larger sequences we'll need to shift the data to the right // in endSeq(). If we could instead pad the length field with // zeros, it would be a big win. ensureFreeBytes(3); offset += 3; curSeqIndex++; } /** * Terminate a BER sequence. */ public void endSeq() throws EncodeException { curSeqIndex--; if (curSeqIndex < 0) { throw new IllegalStateException("BER encode error: Unbalanced SEQUENCEs."); } int start = seqOffset[curSeqIndex] + 3; // index beyond length field int len = offset - start; if (len <= 0x7f) { shiftSeqData(start, len, -2); buf[seqOffset[curSeqIndex]] = (byte) len; } else if (len <= 0xff) { shiftSeqData(start, len, -1); buf[seqOffset[curSeqIndex]] = (byte) 0x81; buf[seqOffset[curSeqIndex] + 1] = (byte) len; } else if (len <= 0xffff) { buf[seqOffset[curSeqIndex]] = (byte) 0x82; buf[seqOffset[curSeqIndex] + 1] = (byte) (len >> 8); buf[seqOffset[curSeqIndex] + 2] = (byte) len; } else if (len <= 0xffffff) { shiftSeqData(start, len, 1); buf[seqOffset[curSeqIndex]] = (byte) 0x83; buf[seqOffset[curSeqIndex] + 1] = (byte) (len >> 16); buf[seqOffset[curSeqIndex] + 2] = (byte) (len >> 8); buf[seqOffset[curSeqIndex] + 3] = (byte) len; } else { throw new EncodeException("SEQUENCE too long"); } } /** * Shifts contents of buf in the range [start,start+len) a specified amount. * Positive shift value means shift to the right. */ private void shiftSeqData(int start, int len, int shift) { if (shift > 0) { ensureFreeBytes(shift); } System.arraycopy(buf, start, buf, start + shift, len); offset += shift; } /** * Encode a single byte. */ public void encodeByte(int b) { ensureFreeBytes(1); buf[offset++] = (byte) b; } /* private void deleteByte() { offset--; } */ /* * Encodes an int. *<blockquote><pre> * BER integer ::= 0x02 berlength byte {byte}* *</pre></blockquote> */ public void encodeInt(int i) { encodeInt(i, 0x02); } /** * Encodes an int and a tag. *<blockquote><pre> * BER integer w tag ::= tag berlength byte {byte}* *</pre></blockquote> */ public void encodeInt(int i, int tag) { int mask = 0xff800000; int intsize = 4; while( (((i & mask) == 0) || ((i & mask) == mask)) && (intsize > 1) ) { intsize--; i <<= 8; } encodeInt(i, tag, intsize); } // // encodes an int using numbytes for the actual encoding. // private void encodeInt(int i, int tag, int intsize) { // // integer ::= 0x02 asnlength byte {byte}* // if (intsize > 4) { throw new IllegalArgumentException("BER encode error: INTEGER too long."); } ensureFreeBytes(2 + intsize); buf[offset++] = (byte) tag; buf[offset++] = (byte) intsize; int mask = 0xff000000; while (intsize-- > 0) { buf[offset++] = (byte) ((i & mask) >> 24); i <<= 8; } } /** * Encodes a boolean. *<blockquote><pre> * BER boolean ::= 0x01 0x01 {0xff|0x00} *</pre></blockquote> */ public void encodeBoolean(boolean b) { encodeBoolean(b, ASN_BOOLEAN); } /** * Encodes a boolean and a tag *<blockquote><pre> * BER boolean w TAG ::= tag 0x01 {0xff|0x00} *</pre></blockquote> */ public void encodeBoolean(boolean b, int tag) { ensureFreeBytes(3); buf[offset++] = (byte) tag; buf[offset++] = 0x01; buf[offset++] = b ? (byte) 0xff : (byte) 0x00; } /** * Encodes a string. *<blockquote><pre> * BER string ::= 0x04 strlen byte1 byte2... *</pre></blockquote> * The string is converted into bytes using UTF-8 or ISO-Latin-1. */ public void encodeString(String str, boolean encodeUTF8) throws EncodeException { encodeString(str, ASN_OCTET_STR, encodeUTF8); } /** * Encodes a string and a tag. *<blockquote><pre> * BER string w TAG ::= tag strlen byte1 byte2... *</pre></blockquote> */ public void encodeString(String str, int tag, boolean encodeUTF8) throws EncodeException { encodeByte(tag); int i = 0; int count; byte[] bytes = null; if (str == null) { count = 0; } else if (encodeUTF8) { try { bytes = str.getBytes("UTF8"); count = bytes.length; } catch (UnsupportedEncodingException e) { throw new EncodeException("UTF8 not available on platform"); } } else { try { bytes = str.getBytes("8859_1"); count = bytes.length; } catch (UnsupportedEncodingException e) { throw new EncodeException("8859_1 not available on platform"); } } encodeLength(count); ensureFreeBytes(count); while (i < count) { buf[offset++] = bytes[i++]; } } /** * Encodes a portion of an octet string and a tag. */ public void encodeOctetString(byte tb[], int tag, int tboffset, int length) throws EncodeException { encodeByte(tag); encodeLength(length); if (length > 0) { ensureFreeBytes(length); System.arraycopy(tb, tboffset, buf, offset, length); offset += length; } } /** * Encodes an octet string and a tag. */ public void encodeOctetString(byte tb[], int tag) throws EncodeException { encodeOctetString(tb, tag, 0, tb.length); } private void encodeLength(int len) throws EncodeException { ensureFreeBytes(4); // worst case if (len < 128) { buf[offset++] = (byte) len; } else if (len <= 0xff) { buf[offset++] = (byte) 0x81; buf[offset++] = (byte) len; } else if (len <= 0xffff) { buf[offset++] = (byte) 0x82; buf[offset++] = (byte) (len >> 8); buf[offset++] = (byte) (len & 0xff); } else if (len <= 0xffffff) { buf[offset++] = (byte) 0x83; buf[offset++] = (byte) (len >> 16); buf[offset++] = (byte) (len >> 8); buf[offset++] = (byte) (len & 0xff); } else { throw new EncodeException("string too long"); } } /** * Encodes an array of strings. */ public void encodeStringArray(String strs[], boolean encodeUTF8) throws EncodeException { if (strs == null) return; for (int i = 0; i < strs.length; i++) { encodeString(strs[i], encodeUTF8); } } /* private void encodeNull() { // // NULL ::= 0x05 0x00 // encodeByte(0x05); encodeByte(0x00); } */ /** * Ensures that there are at least "len" unused bytes in "buf". * When more space is needed "buf" is expanded by a factor of * BUF_GROWTH_FACTOR, then "len" bytes are added if "buf" still * isn't large enough. */ private void ensureFreeBytes(int len) { if (bufsize - offset < len) { int newsize = bufsize * BUF_GROWTH_FACTOR; if (newsize - offset < len) { newsize += len; } byte newbuf[] = new byte[newsize]; // Only copy bytes in the range [0, offset) System.arraycopy(buf, 0, newbuf, 0, offset); buf = newbuf; bufsize = newsize; } } }
⏎ com/sun/jndi/ldap/BerEncoder.java
Or download all of them as a single archive file:
File name: java.naming-11.0.1-src.zip File size: 461792 bytes Release date: 2018-11-04 Download
⇒ JDK 11 java.net.http.jmod - Net HTTP Module
2020-09-30, 61419👍, 0💬
Popular Posts:
What Is poi-scratchpad-5.2.3.jar ?poi-scratchpad-5.2.3.jar is one of the JAR files for Apache POI 5....
JLayer is a library that decodes/plays/converts MPEG 1/2/2.5 Layer 1/2/3 (i.e. MP3) in real time for...
How to compare performances of various XML parsers with the jaxp\SourceValidator.jav aprovided in th...
JDK 11 jdk.compiler.jmod is the JMOD file for JDK 11 Compiler tool, which can be invoked by the "jav...
JDK 11 jdk.jdeps.jmod is the JMOD file for JDK 11 JDeps tool, which can be invoked by the "jdeps" co...