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

Side by Side Diff: public/platform/WebCryptoAlgorithm.h

Issue 312393004: Expose WebCrypto's lookupAlgorithmInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@share_normalize
Patch Set: Addressed comment (removed redundant idToName). Created 6 years, 6 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
« no previous file with comments | « Source/platform/exported/WebCryptoAlgorithm.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 WebCryptoAlgorithmParamsTypeAesKeyGenParams, 78 WebCryptoAlgorithmParamsTypeAesKeyGenParams,
79 WebCryptoAlgorithmParamsTypeHmacImportParams, 79 WebCryptoAlgorithmParamsTypeHmacImportParams,
80 WebCryptoAlgorithmParamsTypeHmacKeyGenParams, 80 WebCryptoAlgorithmParamsTypeHmacKeyGenParams,
81 WebCryptoAlgorithmParamsTypeRsaHashedKeyGenParams, 81 WebCryptoAlgorithmParamsTypeRsaHashedKeyGenParams,
82 WebCryptoAlgorithmParamsTypeRsaHashedImportParams, 82 WebCryptoAlgorithmParamsTypeRsaHashedImportParams,
83 WebCryptoAlgorithmParamsTypeAesGcmParams, 83 WebCryptoAlgorithmParamsTypeAesGcmParams,
84 WebCryptoAlgorithmParamsTypeRsaOaepParams, 84 WebCryptoAlgorithmParamsTypeRsaOaepParams,
85 WebCryptoAlgorithmParamsTypeAesCtrParams, 85 WebCryptoAlgorithmParamsTypeAesCtrParams,
86 }; 86 };
87 87
88 struct WebCryptoAlgorithmInfo {
89 typedef char ParamsTypeOrUndefined;
90 static const ParamsTypeOrUndefined Undefined = -1;
91
92 // The canonical (case-sensitive) name for the algorithm as a
93 // null-terminated C-string literal.
94 const char* name;
95
96 // A map from the operation to the expected parameter type of the algorithm.
97 // If an operation is not applicable for the algorithm, set to Undefined.
98 const ParamsTypeOrUndefined operationToParamsType[WebCryptoOperationLast + 1 ];
99 };
100
101
88 class WebCryptoAesCbcParams; 102 class WebCryptoAesCbcParams;
89 class WebCryptoAesKeyGenParams; 103 class WebCryptoAesKeyGenParams;
90 class WebCryptoHmacImportParams; 104 class WebCryptoHmacImportParams;
91 class WebCryptoHmacKeyGenParams; 105 class WebCryptoHmacKeyGenParams;
92 class WebCryptoAesGcmParams; 106 class WebCryptoAesGcmParams;
93 class WebCryptoRsaOaepParams; 107 class WebCryptoRsaOaepParams;
94 class WebCryptoAesCtrParams; 108 class WebCryptoAesCtrParams;
95 class WebCryptoRsaHashedKeyGenParams; 109 class WebCryptoRsaHashedKeyGenParams;
96 class WebCryptoRsaHashedImportParams; 110 class WebCryptoRsaHashedImportParams;
97 111
(...skipping 10 matching lines...) Expand all
108 class WebCryptoAlgorithm { 122 class WebCryptoAlgorithm {
109 public: 123 public:
110 #if INSIDE_BLINK 124 #if INSIDE_BLINK
111 WebCryptoAlgorithm() { } 125 WebCryptoAlgorithm() { }
112 BLINK_PLATFORM_EXPORT WebCryptoAlgorithm(WebCryptoAlgorithmId, PassOwnPtr<We bCryptoAlgorithmParams>); 126 BLINK_PLATFORM_EXPORT WebCryptoAlgorithm(WebCryptoAlgorithmId, PassOwnPtr<We bCryptoAlgorithmParams>);
113 #endif 127 #endif
114 128
115 BLINK_PLATFORM_EXPORT static WebCryptoAlgorithm createNull(); 129 BLINK_PLATFORM_EXPORT static WebCryptoAlgorithm createNull();
116 BLINK_PLATFORM_EXPORT static WebCryptoAlgorithm adoptParamsAndCreate(WebCryp toAlgorithmId, WebCryptoAlgorithmParams*); 130 BLINK_PLATFORM_EXPORT static WebCryptoAlgorithm adoptParamsAndCreate(WebCryp toAlgorithmId, WebCryptoAlgorithmParams*);
117 131
132 // Returns a WebCryptoAlgorithmInfo for the algorithm with the given ID. If
133 // the ID is invalid, return 0. The caller can assume the pointer will be
134 // valid for the program's entire runtime.
135 BLINK_PLATFORM_EXPORT static const WebCryptoAlgorithmInfo* lookupAlgorithmIn fo(WebCryptoAlgorithmId);
136
118 ~WebCryptoAlgorithm() { reset(); } 137 ~WebCryptoAlgorithm() { reset(); }
119 138
120 WebCryptoAlgorithm(const WebCryptoAlgorithm& other) { assign(other); } 139 WebCryptoAlgorithm(const WebCryptoAlgorithm& other) { assign(other); }
121 WebCryptoAlgorithm& operator=(const WebCryptoAlgorithm& other) 140 WebCryptoAlgorithm& operator=(const WebCryptoAlgorithm& other)
122 { 141 {
123 assign(other); 142 assign(other);
124 return *this; 143 return *this;
125 } 144 }
126 145
127 BLINK_PLATFORM_EXPORT bool isNull() const; 146 BLINK_PLATFORM_EXPORT bool isNull() const;
(...skipping 20 matching lines...) Expand all
148 private: 167 private:
149 BLINK_PLATFORM_EXPORT void assign(const WebCryptoAlgorithm& other); 168 BLINK_PLATFORM_EXPORT void assign(const WebCryptoAlgorithm& other);
150 BLINK_PLATFORM_EXPORT void reset(); 169 BLINK_PLATFORM_EXPORT void reset();
151 170
152 WebPrivatePtr<WebCryptoAlgorithmPrivate> m_private; 171 WebPrivatePtr<WebCryptoAlgorithmPrivate> m_private;
153 }; 172 };
154 173
155 } // namespace blink 174 } // namespace blink
156 175
157 #endif 176 #endif
OLDNEW
« no previous file with comments | « Source/platform/exported/WebCryptoAlgorithm.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698