| /* 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 <openssl/tls1.h> |
| #include <stdio.h> |
| |
| #include <openssl/ec.h> |
| #include <openssl/rsa.h> |
| #include <openssl/ssl.h> |
| #include <openssl/x509v3.h> |
| #include <openssl/evp.h> |
| #include <openssl/aead.h> |
| |
| 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_TLSEXT_ERR_NOACK); |
| |
| 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; |
| } |