Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Side by Side Diff: net/android/legacy_openssl.h

Issue 365503007: Insulate the legacy Android client auth code from OpenSSL ABI changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Mismerge Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/android/keystore_openssl.cc ('k') | net/net.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef NET_ANDROID_LEGACY_OPENSSL_H
6 #define NET_ANDROID_LEGACY_OPENSSL_H
7
8 // This file contains a replica of the Android system OpenSSL ABI shipped in
9 // Android 4.1.x (API level 16). The ABI may not necessarily be compatible with
10 // the copy of OpenSSL shipped in Chromium. This is used to implement
11 // RSA_private_encrypt in one of the legacy client auth codepaths.
12 //
13 // See https://android.googlesource.com/platform/external/openssl/+/android-4.1. 2_r2.1
14
15 namespace net {
16 namespace android {
17
18 enum {
19 ANDROID_EVP_PKEY_RSA = 6,
20 };
21
22 enum {
23 ANDROID_RSA_PKCS1_PADDING = 1,
24 ANDROID_RSA_SSLV23_PADDING = 2,
25 ANDROID_RSA_NO_PADDING = 3,
26 ANDROID_RSA_PKCS1_OAEP_PADDING = 4,
27 ANDROID_X931_PADDING = 5,
28 ANDROID_PKCS1_PSS_PADDING = 6,
29 };
30
31 struct AndroidEVP_PKEY_ASN1_METHOD;
32 struct AndroidRSA_METHOD;
33 struct AndroidSTACK;
34
35 struct AndroidCRYPTO_EX_DATA {
36 AndroidSTACK* sk;
37 int dummy;
38 };
39
40 struct AndroidENGINE {
41 const char* id;
42 // Remaining fields intentionally omitted.
43 };
44
45 struct AndroidRSA {
46 int pad;
47 long version;
48 const AndroidRSA_METHOD* meth;
49 AndroidENGINE* engine;
50 // Remaining fields intentionally omitted.
51 };
52
53 struct AndroidRSA_METHOD {
54 const char* name;
55 int (*rsa_pub_enc)(int flen,
56 const unsigned char* from,
57 unsigned char* to,
58 AndroidRSA* rsa,
59 int padding);
60 int (*rsa_pub_dec)(int flen,
61 const unsigned char* from,
62 unsigned char* to,
63 AndroidRSA* rsa,
64 int padding);
65 int (*rsa_priv_enc)(int flen,
66 const unsigned char* from,
67 unsigned char* to,
68 AndroidRSA* rsa,
69 int padding);
70 int (*rsa_priv_dec)(int flen,
71 const unsigned char* from,
72 unsigned char* to,
73 AndroidRSA* rsa,
74 int padding);
75 // Remaining fields intentionally omitted.
76 };
77
78 struct AndroidEVP_PKEY {
79 int type;
80 int save_type;
81 // Note: this value must NOT be modified using Chromium's CRYPTO_add
82 // function. That may not necessarily use the same locking implementation as
83 // system OpenSSL.
84 int references;
85 const AndroidEVP_PKEY_ASN1_METHOD* ameth;
86 AndroidENGINE* engine;
87 union {
88 char* ptr;
89 AndroidRSA* rsa;
90 } pkey;
91 int save_parameters;
92 AndroidSTACK* attributes;
93 };
94
95 } // namespace android
96 } // namespace net
97
98 #endif // NET_ANDROID_LEGACY_OPENSSL_H
OLDNEW
« no previous file with comments | « net/android/keystore_openssl.cc ('k') | net/net.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698