diff options
author | Casey Marshall <csm@gnu.org> | 2006-08-14 22:36:17 +0000 |
---|---|---|
committer | Casey Marshall <csm@gnu.org> | 2006-08-14 22:36:17 +0000 |
commit | 8c09ba9b0bb2b3c6768d7bf7849bf5e096efdc16 (patch) | |
tree | 2385de1ad71e083a0394a98b0865c95187cfeb76 /gnu/javax/net/ssl/provider/ProtocolVersion.java | |
parent | 32bb0e9c211961fbade190535b8041ece5df772c (diff) | |
download | classpath-8c09ba9b0bb2b3c6768d7bf7849bf5e096efdc16.tar.gz |
2006-08-14 Casey Marshall <csm@gnu.org>
Merge in ssl-nio-branch work. See `ChangeLog-ssl-nio' for a record
of changes made on this branch.
Files modified:
* gnu/classpath/debug/Component.java
* gnu/classpath/debug/SystemLogger.java
* gnu/java/security/action/GetPropertyAction.java
* gnu/java/security/action/GetSecurityPropertyAction.java
* gnu/javax/crypto/RSACipherImpl.java
* gnu/javax/net/ssl/PrivateCredentials.java
* gnu/javax/net/ssl/provider/Alert.java
* gnu/javax/net/ssl/provider/AlertException.java
* gnu/javax/net/ssl/provider/Certificate.java
* gnu/javax/net/ssl/provider/CertificateRequest.java
* gnu/javax/net/ssl/provider/CertificateType.java
* gnu/javax/net/ssl/provider/CertificateVerify.java
* gnu/javax/net/ssl/provider/CipherSuite.java
* gnu/javax/net/ssl/provider/ClientHello.java
* gnu/javax/net/ssl/provider/ClientKeyExchange.java
* gnu/javax/net/ssl/provider/CompressionMethod.java
* gnu/javax/net/ssl/provider/Constructed.java
* gnu/javax/net/ssl/provider/ContentType.java
* gnu/javax/net/ssl/provider/DiffieHellman.java
* gnu/javax/net/ssl/provider/Extension.java
* gnu/javax/net/ssl/provider/Finished.java
* gnu/javax/net/ssl/provider/Handshake.java
* gnu/javax/net/ssl/provider/Jessie.java
* gnu/javax/net/ssl/provider/ProtocolVersion.java
* gnu/javax/net/ssl/provider/Random.java
* gnu/javax/net/ssl/provider/ServerHello.java
* gnu/javax/net/ssl/provider/ServerKeyExchange.java
* gnu/javax/net/ssl/provider/Signature.java
* gnu/javax/net/ssl/provider/Util.java
* gnu/javax/net/ssl/provider/X509KeyManagerFactory.java
* gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
* java/security/MessageDigest.java
* java/security/MessageDigestSpi.java
* java/security/Signature.java
* java/security/SignatureSpi.java
* javax/crypto/Mac.java
* javax/crypto/MacSpi.java
* javax/net/ssl/HandshakeCompletedEvent.java
* javax/net/ssl/HttpsURLConnection.java
* javax/net/ssl/SSLContext.java
* javax/net/ssl/SSLContextSpi.java
* javax/net/ssl/SSLSession.java
Files added:
* gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java
* gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java
* gnu/javax/net/ssl/provider/SimpleSessionContext.java
* gnu/javax/net/ssl/provider/ServerRSAParams.java
* gnu/javax/net/ssl/provider/SSLContextImpl.java
* gnu/javax/net/ssl/provider/ServerDHParams.java
* gnu/javax/net/ssl/provider/ClientHelloBuilder.java
* gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java
* gnu/javax/net/ssl/provider/SignatureAlgorithm.java
* gnu/javax/net/ssl/provider/CipherSuiteList.java
* gnu/javax/net/ssl/provider/ServerNameList.java
* gnu/javax/net/ssl/provider/SSLServerSocketImpl.java
* gnu/javax/net/ssl/provider/CompressionMethodList.java
* gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java
* gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java
* gnu/javax/net/ssl/provider/TrustedAuthorities.java
* gnu/javax/net/ssl/provider/CertificateStatusRequest.java
* gnu/javax/net/ssl/provider/ServerHelloDone.java
* gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java
* gnu/javax/net/ssl/provider/SSLSocketImpl.java
* gnu/javax/net/ssl/provider/ServerHelloBuilder.java
* gnu/javax/net/ssl/provider/Record.java
* gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java
* gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java
* gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java
* gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java
* gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java
* gnu/javax/net/ssl/provider/CertificateBuilder.java
* gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java
* gnu/javax/net/ssl/provider/CertificateStatusType.java
* gnu/javax/net/ssl/provider/ExtensionList.java
* gnu/javax/net/ssl/provider/ClientCertificateTypeList.java
* gnu/javax/net/ssl/provider/ClientPSKParameters.java
* gnu/javax/net/ssl/provider/X500PrincipalList.java
* gnu/javax/net/ssl/provider/ServerHandshake.java
* gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java
* gnu/javax/net/ssl/provider/SessionImpl.java
* gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
* gnu/javax/net/ssl/provider/ServerPSKParameters.java
* gnu/javax/net/ssl/provider/TruncatedHMAC.java
* gnu/javax/net/ssl/provider/MaxFragmentLength.java
* gnu/javax/net/ssl/provider/HelloRequest.java
* gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java
* gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java
* gnu/javax/net/ssl/provider/CipherAlgorithm.java
* gnu/javax/net/ssl/provider/ClientHandshake.java
* gnu/javax/net/ssl/provider/ExchangeKeys.java
* gnu/javax/net/ssl/provider/CertificateURL.java
* gnu/javax/net/ssl/provider/EmptyExchangeKeys.java
* gnu/javax/net/ssl/provider/CertificateRequestBuilder.java
* gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java
* gnu/javax/net/ssl/provider/Builder.java
* gnu/javax/net/ssl/provider/Debug.java
* gnu/javax/net/ssl/provider/SSLEngineImpl.java
* gnu/javax/net/ssl/provider/MacAlgorithm.java
* gnu/javax/net/ssl/provider/DelegatedTask.java
* gnu/javax/net/ssl/provider/InputSecurityParameters.java
* gnu/javax/net/ssl/provider/ClientHelloV2.java
* gnu/javax/net/ssl/provider/OutputSecurityParameters.java
* gnu/javax/net/ssl/provider/AbstractHandshake.java
* javax/net/ssl/SSLEngine.java
* javax/net/ssl/CertPathTrustManagerParameters.java
* javax/net/ssl/KeyStoreBuilderParameters.java
* javax/net/ssl/X509ExtendedKeyManager.java
* javax/net/ssl/SSLEngineResult.java
* gnu/javax/net/ssl/PreSharedKeyManager.java
* gnu/javax/net/ssl/Session.java
* gnu/javax/net/ssl/PreSharedKeyManagerParameters.java
* gnu/javax/net/ssl/SSLCipherSuite.java
* gnu/javax/net/ssl/AbstractSessionContext.java
* gnu/javax/net/ssl/SessionStoreException.java
* gnu/javax/net/ssl/SSLRecordHandler.java
* gnu/javax/net/ssl/SSLProtocolVersion.java
* gnu/javax/crypto/key/GnuPBEKey.java
* gnu/java/security/util/ByteBufferOutputStream.java
* gnu/java/security/Requires.java
* gnu/javax/security/auth/callback/CertificateCallback.java
Files removed:
* gnu/javax/net/ssl/provider/Context.java
* gnu/javax/net/ssl/provider/DigestInputStream.java
* gnu/javax/net/ssl/provider/DigestOutputStream.java
* gnu/javax/net/ssl/provider/Enumerated.java
* gnu/javax/net/ssl/provider/Extensions.java
* gnu/javax/net/ssl/provider/GNUSecurityParameters.java
* gnu/javax/net/ssl/provider/JCESecurityParameters.java
* gnu/javax/net/ssl/provider/JDBCSessionContext.java
* gnu/javax/net/ssl/provider/JessieDHPrivateKey.java
* gnu/javax/net/ssl/provider/JessieDHPublicKey.java
* gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java
* gnu/javax/net/ssl/provider/JessieRSAPublicKey.java
* gnu/javax/net/ssl/provider/KeyPool.java
* gnu/javax/net/ssl/provider/OverflowException.java
* gnu/javax/net/ssl/provider/RecordInput.java
* gnu/javax/net/ssl/provider/RecordInputStream.java
* gnu/javax/net/ssl/provider/RecordOutputStream.java
* gnu/javax/net/ssl/provider/RecordingInputStream.java
* gnu/javax/net/ssl/provider/SSLRSASignature.java
* gnu/javax/net/ssl/provider/SSLServerSocket.java
* gnu/javax/net/ssl/provider/SSLServerSocketFactory.java
* gnu/javax/net/ssl/provider/SSLSocket.java
* gnu/javax/net/ssl/provider/SSLSocketFactory.java
* gnu/javax/net/ssl/provider/SSLSocketInputStream.java
* gnu/javax/net/ssl/provider/SSLSocketOutputStream.java
* gnu/javax/net/ssl/provider/SecurityParameters.java
* gnu/javax/net/ssl/provider/Session.java
* gnu/javax/net/ssl/provider/SessionContext.java
* gnu/javax/net/ssl/provider/SynchronizedRandom.java
* gnu/javax/net/ssl/provider/XMLSessionContext.java
Diffstat (limited to 'gnu/javax/net/ssl/provider/ProtocolVersion.java')
-rw-r--r-- | gnu/javax/net/ssl/provider/ProtocolVersion.java | 73 |
1 files changed, 47 insertions, 26 deletions
diff --git a/gnu/javax/net/ssl/provider/ProtocolVersion.java b/gnu/javax/net/ssl/provider/ProtocolVersion.java index 5f5d1d979..ca62054a8 100644 --- a/gnu/javax/net/ssl/provider/ProtocolVersion.java +++ b/gnu/javax/net/ssl/provider/ProtocolVersion.java @@ -42,15 +42,16 @@ import java.io.InputStream; import java.io.IOException; import java.io.OutputStream; -final class ProtocolVersion implements Comparable, Constructed +public final class ProtocolVersion + implements Comparable<ProtocolVersion>, Constructed { // Constants and fields. // ------------------------------------------------------------------------- - static final ProtocolVersion SSL_3 = new ProtocolVersion(3, 0); - static final ProtocolVersion TLS_1 = new ProtocolVersion(3, 1); - static final ProtocolVersion TLS_1_1 = new ProtocolVersion(3, 2); + public static final ProtocolVersion SSL_3 = new ProtocolVersion(3, 0); + public static final ProtocolVersion TLS_1 = new ProtocolVersion(3, 1); + public static final ProtocolVersion TLS_1_1 = new ProtocolVersion(3, 2); private final int major; private final int minor; @@ -67,14 +68,25 @@ final class ProtocolVersion implements Comparable, Constructed // Class methods. // ------------------------------------------------------------------------- - static ProtocolVersion read(InputStream in) throws IOException + public static ProtocolVersion read(InputStream in) throws IOException { int major = in.read() & 0xFF; int minor = in.read() & 0xFF; return getInstance(major, minor); } - static ProtocolVersion getInstance(int major, int minor) + public static ProtocolVersion forName (final String name) + { + if (name.equalsIgnoreCase ("SSLv3")) + return SSL_3; + if (name.equalsIgnoreCase ("TLSv1")) + return TLS_1; + if (name.equalsIgnoreCase("TLSv1.1")) + return TLS_1_1; + throw new IllegalArgumentException ("unknown protocol name: " + name); + } + + public static ProtocolVersion getInstance(final int major, final int minor) { if (major == 3) { @@ -88,35 +100,46 @@ final class ProtocolVersion implements Comparable, Constructed return new ProtocolVersion(major, minor); } + public static ProtocolVersion getInstance (final short raw_value) + { + int major = raw_value >>> 8 & 0xFF; + int minor = raw_value & 0xFF; + return getInstance (major, minor); + } + // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () { - out.write(major); - out.write(minor); + return 2; } - byte[] getEncoded() + public byte[] getEncoded() { return new byte[] { (byte) major, (byte) minor }; } - int getMajor() + public int major() { return major; } - int getMinor() + public int minor() { return minor; } + public int rawValue () + { + return (major << 8) | minor; + } + public boolean equals(Object o) { - if (o == null || !(o instanceof ProtocolVersion)) + if (!(o instanceof ProtocolVersion)) { return false; } @@ -129,35 +152,33 @@ final class ProtocolVersion implements Comparable, Constructed return major << 8 | minor; } - public int compareTo(Object o) + public int compareTo(ProtocolVersion that) { - if (o == null || !(o instanceof ProtocolVersion)) + if (major > that.major) { return 1; } - if (this.equals(o)) - { - return 0; - } - if (major > ((ProtocolVersion) o).major) - { - return 1; - } - else if (major < ((ProtocolVersion) o).major) + else if (major < that.major) { return -1; } - if (minor > ((ProtocolVersion) o).minor) + + if (minor > that.minor) { return 1; } - else if (minor < ((ProtocolVersion) o).minor) + else if (minor < that.minor) { return -1; } return 0; } + public String toString (String prefix) + { + return toString (); + } + public String toString() { if (this == SSL_3) |