/* Copyright (C) 2015 The Android Open Source Project * * Licensed 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. */ /* This program generates output that is expected to become * NativeConstants.java. This reifies several OpenSSL constants into Java. */ #include #include #include #include #include #include #include static const char kCopyright[] = "/* Copyright (C) 2015 The Android Open Source Project\n" " *\n" " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" " * you may not use this file except in compliance with the License.\n" " * You may obtain a copy of the License at\n" " *\n" " * http://www.apache.org/licenses/LICENSE-2.0\n" " *\n" " * Unless required by applicable law or agreed to in writing, software\n" " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or " "implied.\n" " * See the License for the specific language governing permissions and\n" " * limitations under the License. */\n"; int main(int argc, char **argv) { const char *package; if (argc == 1) { package = "org.conscrypt"; } else { package = argv[1]; } printf("%s\n", kCopyright); printf("/* This file was generated by generate_constants.cc. */\n\n"); printf("package %s;\n\n", package); printf("final class NativeConstants {\n"); #define CONST(x) \ printf(" static final int %s = %ld;\n", #x, (long int)(x)) CONST(EXFLAG_CA); CONST(EXFLAG_CRITICAL); CONST(EVP_PKEY_RSA); CONST(EVP_PKEY_EC); CONST(RSA_PKCS1_PADDING); CONST(RSA_NO_PADDING); CONST(RSA_PKCS1_OAEP_PADDING); CONST(RSA_PKCS1_PSS_PADDING); CONST(SSL_MODE_SEND_FALLBACK_SCSV); CONST(SSL_MODE_CBC_RECORD_SPLITTING); CONST(SSL_MODE_ENABLE_FALSE_START); CONST(SSL_OP_CIPHER_SERVER_PREFERENCE); CONST(SSL_OP_NO_TICKET); CONST(SSL_ERROR_NONE); CONST(SSL_ERROR_WANT_READ); CONST(SSL_ERROR_WANT_WRITE); CONST(SSL_ERROR_ZERO_RETURN); CONST(TLS1_VERSION); CONST(TLS1_1_VERSION); CONST(TLS1_2_VERSION); CONST(TLS1_3_VERSION); CONST(SSL_SENT_SHUTDOWN); CONST(SSL_RECEIVED_SHUTDOWN); CONST(TLS_CT_RSA_SIGN); CONST(TLS_CT_ECDSA_SIGN); CONST(SSL_SIGN_RSA_PKCS1_SHA1); CONST(SSL_SIGN_RSA_PKCS1_SHA256); CONST(SSL_SIGN_RSA_PKCS1_SHA384); CONST(SSL_SIGN_RSA_PKCS1_SHA512); CONST(SSL_SIGN_ECDSA_SHA1); CONST(SSL_SIGN_ECDSA_SECP256R1_SHA256); CONST(SSL_SIGN_ECDSA_SECP384R1_SHA384); CONST(SSL_SIGN_ECDSA_SECP521R1_SHA512); CONST(SSL_SIGN_RSA_PSS_RSAE_SHA256); CONST(SSL_SIGN_RSA_PSS_RSAE_SHA384); CONST(SSL_SIGN_RSA_PSS_RSAE_SHA512); CONST(SSL_SIGN_ED25519); CONST(SSL_VERIFY_NONE); CONST(SSL_VERIFY_PEER); CONST(SSL_VERIFY_FAIL_IF_NO_PEER_CERT); CONST(SSL_CB_HANDSHAKE_START); CONST(SSL_CB_HANDSHAKE_DONE); CONST(SSL3_RT_MAX_PLAIN_LENGTH); CONST(SSL3_RT_MAX_PACKET_SIZE); CONST(SSL3_RT_CHANGE_CIPHER_SPEC); CONST(SSL3_RT_ALERT); CONST(SSL3_RT_HANDSHAKE); CONST(SSL3_RT_APPLICATION_DATA); CONST(SSL3_RT_HEADER_LENGTH); #undef CONST printf("}\n"); return 0; }