| Index: java/io/netty/internal/tcnative/NativeStaticallyReferencedJniMethods.java
|
| diff --git a/java/io/netty/internal/tcnative/NativeStaticallyReferencedJniMethods.java b/java/io/netty/internal/tcnative/NativeStaticallyReferencedJniMethods.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9aed4fd2d62c4f2e1efc14e857bd787b95646009
|
| --- /dev/null
|
| +++ b/java/io/netty/internal/tcnative/NativeStaticallyReferencedJniMethods.java
|
| @@ -0,0 +1,145 @@
|
| +/*
|
| + * Copyright 2017 The Netty Project
|
| + *
|
| + * The Netty Project licenses this file to you under the Apache License,
|
| + * version 2.0 (the "License"); you may not use this file except in compliance
|
| + * with the License. You may obtain a copy of the License at:
|
| + *
|
| + * http://www.apache.org/licenses/LICENSE-2.0
|
| + *
|
| + * Unless required by applicable law or agreed to in writing, software
|
| + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
| + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
| + * License for the specific language governing permissions and limitations
|
| + * under the License.
|
| + */
|
| +package io.netty.internal.tcnative;
|
| +
|
| +/**
|
| + * This class is necessary to break the following cyclic dependency:
|
| + * <ol>
|
| + * <li>JNI_OnLoad</li>
|
| + * <li>JNI Calls FindClass because RegisterNatives (used to register JNI methods) requires a class</li>
|
| + * <li>FindClass loads the class, but static members variables of that class attempt to call a JNI method which has not
|
| + * yet been registered.</li>
|
| + * <li>{@link java.lang.UnsatisfiedLinkError} is thrown because native method has not yet been registered.</li>
|
| + * </ol>
|
| + * <strong>Static members which call JNI methods must not be declared in this class!</strong>
|
| + */
|
| +final class NativeStaticallyReferencedJniMethods {
|
| + private NativeStaticallyReferencedJniMethods() {
|
| + }
|
| +
|
| + /**
|
| + * Options that may impact security and may be set by default as defined in:
|
| + * <a href="https://www.openssl.org/docs/man1.0.1/ssl/SSL_CTX_set_options.html">SSL Docs</a>.
|
| + */
|
| + static native int sslOpCipherServerPreference();
|
| + static native int sslOpNoSSLv2();
|
| + static native int sslOpNoSSLv3();
|
| + static native int sslOpNoTLSv1();
|
| + static native int sslOpNoTLSv11();
|
| + static native int sslOpNoTLSv12();
|
| + static native int sslOpNoTicket();
|
| +
|
| + /**
|
| + * Options not defined in the OpenSSL docs but may impact security.
|
| + */
|
| + static native int sslOpNoCompression();
|
| +
|
| + /* Only support OFF and SERVER for now */
|
| + static native int sslSessCacheOff();
|
| + static native int sslSessCacheServer();
|
| +
|
| + static native int sslStConnect();
|
| + static native int sslStAccept();
|
| +
|
| + static native int sslModeEnablePartialWrite();
|
| + static native int sslModeAcceptMovingWriteBuffer();
|
| + static native int sslModeReleaseBuffers();
|
| +
|
| + static native int sslSendShutdown();
|
| + static native int sslReceivedShutdown();
|
| + static native int sslErrorNone();
|
| + static native int sslErrorSSL();
|
| + static native int sslErrorWantRead();
|
| + static native int sslErrorWantWrite();
|
| + static native int sslErrorWantX509Lookup();
|
| + static native int sslErrorSyscall();
|
| + static native int sslErrorZeroReturn();
|
| + static native int sslErrorWantConnect();
|
| + static native int sslErrorWantAccept();
|
| +
|
| + static native int x509CheckFlagAlwaysCheckSubject();
|
| + static native int x509CheckFlagDisableWildCards();
|
| + static native int x509CheckFlagNoPartialWildCards();
|
| + static native int x509CheckFlagMultiLabelWildCards();
|
| +
|
| + /* x509 certificate verification errors */
|
| + static native int x509vOK();
|
| + static native int x509vErrUnspecified();
|
| + static native int x509vErrUnableToGetIssuerCert();
|
| + static native int x509vErrUnableToGetCrl();
|
| + static native int x509vErrUnableToDecryptCertSignature();
|
| + static native int x509vErrUnableToDecryptCrlSignature();
|
| + static native int x509vErrUnableToDecodeIssuerPublicKey();
|
| + static native int x509vErrCertSignatureFailure();
|
| + static native int x509vErrCrlSignatureFailure();
|
| + static native int x509vErrCertNotYetValid();
|
| + static native int x509vErrCertHasExpired();
|
| + static native int x509vErrCrlNotYetValid();
|
| + static native int x509vErrCrlHasExpired();
|
| + static native int x509vErrErrorInCertNotBeforeField();
|
| + static native int x509vErrErrorInCertNotAfterField();
|
| + static native int x509vErrErrorInCrlLastUpdateField();
|
| + static native int x509vErrErrorInCrlNextUpdateField();
|
| + static native int x509vErrOutOfMem();
|
| + static native int x509vErrDepthZeroSelfSignedCert();
|
| + static native int x509vErrSelfSignedCertInChain();
|
| + static native int x509vErrUnableToGetIssuerCertLocally();
|
| + static native int x509vErrUnableToVerifyLeafSignature();
|
| + static native int x509vErrCertChainTooLong();
|
| + static native int x509vErrCertRevoked();
|
| + static native int x509vErrInvalidCa();
|
| + static native int x509vErrPathLengthExceeded();
|
| + static native int x509vErrInvalidPurpose();
|
| + static native int x509vErrCertUntrusted();
|
| + static native int x509vErrCertRejected();
|
| + static native int x509vErrSubjectIssuerMismatch();
|
| + static native int x509vErrAkidSkidMismatch();
|
| + static native int x509vErrAkidIssuerSerialMismatch();
|
| + static native int x509vErrKeyUsageNoCertSign();
|
| + static native int x509vErrUnableToGetCrlIssuer();
|
| + static native int x509vErrUnhandledCriticalExtension();
|
| + static native int x509vErrKeyUsageNoCrlSign();
|
| + static native int x509vErrUnhandledCriticalCrlExtension();
|
| + static native int x509vErrInvalidNonCa();
|
| + static native int x509vErrProxyPathLengthExceeded();
|
| + static native int x509vErrKeyUsageNoDigitalSignature();
|
| + static native int x509vErrProxyCertificatesNotAllowed();
|
| + static native int x509vErrInvalidExtension();
|
| + static native int x509vErrInvalidPolicyExtension();
|
| + static native int x509vErrNoExplicitPolicy();
|
| + static native int x509vErrDifferntCrlScope();
|
| + static native int x509vErrUnsupportedExtensionFeature();
|
| + static native int x509vErrUnnestedResource();
|
| + static native int x509vErrPermittedViolation();
|
| + static native int x509vErrExcludedViolation();
|
| + static native int x509vErrSubtreeMinMax();
|
| + static native int x509vErrApplicationVerification();
|
| + static native int x509vErrUnsupportedConstraintType();
|
| + static native int x509vErrUnsupportedConstraintSyntax();
|
| + static native int x509vErrUnsupportedNameSyntax();
|
| + static native int x509vErrCrlPathValidationError();
|
| + static native int x509vErrPathLoop();
|
| + static native int x509vErrSuiteBInvalidVersion();
|
| + static native int x509vErrSuiteBInvalidAlgorithm();
|
| + static native int x509vErrSuiteBInvalidCurve();
|
| + static native int x509vErrSuiteBInvalidSignatureAlgorithm();
|
| + static native int x509vErrSuiteBLosNotAllowed();
|
| + static native int x509vErrSuiteBCannotSignP384WithP256();
|
| + static native int x509vErrHostnameMismatch();
|
| + static native int x509vErrEmailMismatch();
|
| + static native int x509vErrIpAddressMismatch();
|
| + static native int x509vErrDaneNoMatch();
|
| +}
|
|
|