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.security.sasl.jmod - Security SASL Module
JDK 11 java.security.sasl.jmod is the JMOD file for JDK 11 Security SASL (Simple Authentication and Security Layer) module.
JDK 11 Security SASL module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.security.sasl.jmod.
JDK 11 Security SASL module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Security SASL module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.security.sasl.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/security/sasl/CramMD5Base.java
/* * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.security.sasl; import javax.security.sasl.SaslException; import javax.security.sasl.Sasl; // For HMAC_MD5 import java.security.NoSuchAlgorithmException; import java.security.MessageDigest; import java.util.Arrays; import java.util.logging.Logger; /** * Base class for implementing CRAM-MD5 client and server mechanisms. * * @author Vincent Ryan * @author Rosanna Lee */ abstract class CramMD5Base { protected boolean completed = false; protected boolean aborted = false; protected byte[] pw; protected CramMD5Base() { initLogger(); } /** * Retrieves this mechanism's name. * * @return The string "CRAM-MD5". */ public String getMechanismName() { return "CRAM-MD5"; } /** * Determines whether this mechanism has completed. * CRAM-MD5 completes after processing one challenge from the server. * * @return true if has completed; false otherwise; */ public boolean isComplete() { return completed; } /** * Unwraps the incoming buffer. CRAM-MD5 supports no security layer. * * @throws SaslException If attempt to use this method. */ public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException { if (completed) { throw new IllegalStateException( "CRAM-MD5 supports neither integrity nor privacy"); } else { throw new IllegalStateException( "CRAM-MD5 authentication not completed"); } } /** * Wraps the outgoing buffer. CRAM-MD5 supports no security layer. * * @throws SaslException If attempt to use this method. */ public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException { if (completed) { throw new IllegalStateException( "CRAM-MD5 supports neither integrity nor privacy"); } else { throw new IllegalStateException( "CRAM-MD5 authentication not completed"); } } /** * Retrieves the negotiated property. * This method can be called only after the authentication exchange has * completed (i.e., when {@code isComplete()} returns true); otherwise, a * {@code SaslException} is thrown. * * @return value of property; only QOP is applicable to CRAM-MD5. * @exception IllegalStateException if this authentication exchange has not completed */ public Object getNegotiatedProperty(String propName) { if (completed) { if (propName.equals(Sasl.QOP)) { return "auth"; } else { return null; } } else { throw new IllegalStateException( "CRAM-MD5 authentication not completed"); } } public void dispose() throws SaslException { clearPassword(); } protected void clearPassword() { if (pw != null) { // zero out password for (int i = 0; i < pw.length; i++) { pw[i] = (byte)0; } pw = null; } } @SuppressWarnings("deprecation") protected void finalize() { clearPassword(); } static private final int MD5_BLOCKSIZE = 64; /** * Hashes its input arguments according to HMAC-MD5 (RFC 2104) * and returns the resulting digest in its ASCII representation. * * HMAC-MD5 function is described as follows: * * MD5(key XOR opad, MD5(key XOR ipad, text)) * * where key is an n byte key * ipad is the byte 0x36 repeated 64 times * opad is the byte 0x5c repeated 64 times * text is the data to be protected */ final static String HMAC_MD5(byte[] key, byte[] text) throws NoSuchAlgorithmException { MessageDigest md5 = MessageDigest.getInstance("MD5"); /* digest the key if longer than 64 bytes */ if (key.length > MD5_BLOCKSIZE) { key = md5.digest(key); } byte[] ipad = new byte[MD5_BLOCKSIZE]; /* inner padding */ byte[] opad = new byte[MD5_BLOCKSIZE]; /* outer padding */ byte[] digest; int i; /* store key in pads */ for (i = 0; i < key.length; i++) { ipad[i] = key[i]; opad[i] = key[i]; } /* XOR key with pads */ for (i = 0; i < MD5_BLOCKSIZE; i++) { ipad[i] ^= 0x36; opad[i] ^= 0x5c; } /* inner MD5 */ md5.update(ipad); md5.update(text); digest = md5.digest(); /* outer MD5 */ md5.update(opad); md5.update(digest); digest = md5.digest(); // Get character representation of digest StringBuilder digestString = new StringBuilder(); for (i = 0; i < digest.length; i++) { if ((digest[i] & 0x000000ff) < 0x10) { digestString.append('0').append(Integer.toHexString(digest[i] & 0x000000ff)); } else { digestString.append( Integer.toHexString(digest[i] & 0x000000ff)); } } Arrays.fill(ipad, (byte)0); Arrays.fill(opad, (byte)0); ipad = null; opad = null; return (digestString.toString()); } /** * Sets logger field. */ private static synchronized void initLogger() { if (logger == null) { logger = Logger.getLogger(SASL_LOGGER_NAME); } } /** * Logger for debug messages */ private static final String SASL_LOGGER_NAME = "javax.security.sasl"; protected static Logger logger; // set in initLogger(); lazily loads logger }
⏎ com/sun/security/sasl/CramMD5Base.java
Or download all of them as a single archive file:
File name: java.security.sasl-11.0.1-src.zip File size: 76634 bytes Release date: 2018-11-04 Download
⇒ JDK 11 java.smartcardio.jmod - Smart Card IO Module
2020-09-15, 12864👍, 0💬
Popular Posts:
ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify ex...
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...
JRE 8 plugin.jar is the JAR file for JRE 8 Java Control Panel Plugin interface and tools. JRE (Java ...
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...