blob: 9aed4fd2d62c4f2e1efc14e857bd787b95646009 [file] [log] [blame]
/*
* 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();
}