Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM KeyAlgorithm.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_KeyAlgorithmBinding_h
4 : #define mozilla_dom_KeyAlgorithmBinding_h
5 :
6 : #include "KeyAlgorithmBinding.h"
7 : #include "js/RootingAPI.h"
8 : #include "jspubtd.h"
9 : #include "mozilla/ErrorResult.h"
10 : #include "mozilla/dom/BindingDeclarations.h"
11 : #include "mozilla/dom/Nullable.h"
12 : #include "mozilla/dom/TypedArray.h"
13 :
14 : namespace mozilla {
15 : namespace dom {
16 :
17 : struct AesKeyAlgorithmAtoms;
18 : struct DhKeyAlgorithmAtoms;
19 : struct EcKeyAlgorithmAtoms;
20 : struct HmacKeyAlgorithmAtoms;
21 : struct KeyAlgorithm;
22 : struct KeyAlgorithmAtoms;
23 : struct NativePropertyHooks;
24 : class ProtoAndIfaceCache;
25 : struct RsaHashedKeyAlgorithmAtoms;
26 :
27 : } // namespace dom
28 : } // namespace mozilla
29 :
30 : namespace mozilla {
31 : namespace dom {
32 :
33 0 : struct KeyAlgorithm : public DictionaryBase
34 : {
35 : MOZ_INIT_OUTSIDE_CTOR nsString mName;
36 :
37 : KeyAlgorithm();
38 :
39 0 : explicit inline KeyAlgorithm(const FastDictionaryInitializer& )
40 0 : {
41 : // Do nothing here; this is used by our "Fast" subclass
42 0 : }
43 :
44 0 : explicit inline KeyAlgorithm(const KeyAlgorithm& aOther)
45 0 : {
46 0 : *this = aOther;
47 0 : }
48 :
49 : bool
50 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
51 :
52 : bool
53 : Init(const nsAString& aJSON);
54 :
55 : bool
56 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
57 :
58 : bool
59 : ToJSON(nsAString& aJSON) const;
60 :
61 : void
62 : TraceDictionary(JSTracer* trc);
63 :
64 : KeyAlgorithm&
65 : operator=(const KeyAlgorithm& aOther);
66 :
67 : private:
68 : static bool
69 : InitIds(JSContext* cx, KeyAlgorithmAtoms* atomsCache);
70 : };
71 :
72 : namespace binding_detail {
73 : struct FastKeyAlgorithm : public KeyAlgorithm
74 : {
75 : inline FastKeyAlgorithm()
76 : : KeyAlgorithm(FastDictionaryInitializer())
77 : {
78 : // Doesn't matter what int we pass to the parent constructor
79 : }
80 : };
81 : } // namespace binding_detail
82 :
83 :
84 0 : struct AesKeyAlgorithm : public KeyAlgorithm
85 : {
86 : MOZ_INIT_OUTSIDE_CTOR uint16_t mLength;
87 :
88 : AesKeyAlgorithm();
89 :
90 : explicit inline AesKeyAlgorithm(const FastDictionaryInitializer& )
91 : : KeyAlgorithm(FastDictionaryInitializer())
92 : {
93 : // Do nothing here; this is used by our "Fast" subclass
94 : }
95 :
96 0 : explicit inline AesKeyAlgorithm(const AesKeyAlgorithm& aOther)
97 0 : {
98 0 : *this = aOther;
99 0 : }
100 :
101 : bool
102 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
103 :
104 : bool
105 : Init(const nsAString& aJSON);
106 :
107 : bool
108 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
109 :
110 : bool
111 : ToJSON(nsAString& aJSON) const;
112 :
113 : void
114 : TraceDictionary(JSTracer* trc);
115 :
116 : AesKeyAlgorithm&
117 : operator=(const AesKeyAlgorithm& aOther);
118 :
119 : private:
120 : static bool
121 : InitIds(JSContext* cx, AesKeyAlgorithmAtoms* atomsCache);
122 : };
123 :
124 : namespace binding_detail {
125 : struct FastAesKeyAlgorithm : public AesKeyAlgorithm
126 : {
127 : inline FastAesKeyAlgorithm()
128 : : AesKeyAlgorithm(FastDictionaryInitializer())
129 : {
130 : // Doesn't matter what int we pass to the parent constructor
131 : }
132 : };
133 : } // namespace binding_detail
134 :
135 :
136 0 : struct DhKeyAlgorithm : public KeyAlgorithm
137 : {
138 : MOZ_INIT_OUTSIDE_CTOR Uint8Array mGenerator;
139 : MOZ_INIT_OUTSIDE_CTOR Uint8Array mPrime;
140 :
141 : DhKeyAlgorithm();
142 :
143 : explicit inline DhKeyAlgorithm(const FastDictionaryInitializer& )
144 : : KeyAlgorithm(FastDictionaryInitializer())
145 : {
146 : // Do nothing here; this is used by our "Fast" subclass
147 : }
148 :
149 : private:
150 : DhKeyAlgorithm(const DhKeyAlgorithm&) = delete;
151 : DhKeyAlgorithm& operator=(const DhKeyAlgorithm&) = delete;
152 :
153 : static bool
154 : InitIds(JSContext* cx, DhKeyAlgorithmAtoms* atomsCache);
155 :
156 : public:
157 : bool
158 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
159 :
160 : bool
161 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
162 :
163 : void
164 : TraceDictionary(JSTracer* trc);
165 : };
166 :
167 : namespace binding_detail {
168 : struct FastDhKeyAlgorithm : public DhKeyAlgorithm
169 : {
170 : inline FastDhKeyAlgorithm()
171 : : DhKeyAlgorithm(FastDictionaryInitializer())
172 : {
173 : // Doesn't matter what int we pass to the parent constructor
174 : }
175 : };
176 : } // namespace binding_detail
177 :
178 :
179 0 : struct EcKeyAlgorithm : public KeyAlgorithm
180 : {
181 : MOZ_INIT_OUTSIDE_CTOR nsString mNamedCurve;
182 :
183 : EcKeyAlgorithm();
184 :
185 : explicit inline EcKeyAlgorithm(const FastDictionaryInitializer& )
186 : : KeyAlgorithm(FastDictionaryInitializer())
187 : {
188 : // Do nothing here; this is used by our "Fast" subclass
189 : }
190 :
191 0 : explicit inline EcKeyAlgorithm(const EcKeyAlgorithm& aOther)
192 0 : {
193 0 : *this = aOther;
194 0 : }
195 :
196 : bool
197 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
198 :
199 : bool
200 : Init(const nsAString& aJSON);
201 :
202 : bool
203 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
204 :
205 : bool
206 : ToJSON(nsAString& aJSON) const;
207 :
208 : void
209 : TraceDictionary(JSTracer* trc);
210 :
211 : EcKeyAlgorithm&
212 : operator=(const EcKeyAlgorithm& aOther);
213 :
214 : private:
215 : static bool
216 : InitIds(JSContext* cx, EcKeyAlgorithmAtoms* atomsCache);
217 : };
218 :
219 : namespace binding_detail {
220 : struct FastEcKeyAlgorithm : public EcKeyAlgorithm
221 : {
222 : inline FastEcKeyAlgorithm()
223 : : EcKeyAlgorithm(FastDictionaryInitializer())
224 : {
225 : // Doesn't matter what int we pass to the parent constructor
226 : }
227 : };
228 : } // namespace binding_detail
229 :
230 :
231 0 : struct HmacKeyAlgorithm : public KeyAlgorithm
232 : {
233 : MOZ_INIT_OUTSIDE_CTOR KeyAlgorithm mHash;
234 : MOZ_INIT_OUTSIDE_CTOR uint32_t mLength;
235 :
236 : HmacKeyAlgorithm();
237 :
238 : explicit inline HmacKeyAlgorithm(const FastDictionaryInitializer& )
239 : : KeyAlgorithm(FastDictionaryInitializer()),
240 : mHash(FastDictionaryInitializer())
241 : {
242 : // Do nothing here; this is used by our "Fast" subclass
243 : }
244 :
245 0 : explicit inline HmacKeyAlgorithm(const HmacKeyAlgorithm& aOther)
246 0 : : mHash(FastDictionaryInitializer())
247 : {
248 0 : *this = aOther;
249 0 : }
250 :
251 : bool
252 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
253 :
254 : bool
255 : Init(const nsAString& aJSON);
256 :
257 : bool
258 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
259 :
260 : bool
261 : ToJSON(nsAString& aJSON) const;
262 :
263 : void
264 : TraceDictionary(JSTracer* trc);
265 :
266 : HmacKeyAlgorithm&
267 : operator=(const HmacKeyAlgorithm& aOther);
268 :
269 : private:
270 : static bool
271 : InitIds(JSContext* cx, HmacKeyAlgorithmAtoms* atomsCache);
272 : };
273 :
274 : namespace binding_detail {
275 : struct FastHmacKeyAlgorithm : public HmacKeyAlgorithm
276 : {
277 : inline FastHmacKeyAlgorithm()
278 : : HmacKeyAlgorithm(FastDictionaryInitializer())
279 : {
280 : // Doesn't matter what int we pass to the parent constructor
281 : }
282 : };
283 : } // namespace binding_detail
284 :
285 :
286 0 : struct RsaHashedKeyAlgorithm : public KeyAlgorithm
287 : {
288 : MOZ_INIT_OUTSIDE_CTOR KeyAlgorithm mHash;
289 : MOZ_INIT_OUTSIDE_CTOR uint16_t mModulusLength;
290 : MOZ_INIT_OUTSIDE_CTOR Uint8Array mPublicExponent;
291 :
292 : RsaHashedKeyAlgorithm();
293 :
294 : explicit inline RsaHashedKeyAlgorithm(const FastDictionaryInitializer& )
295 : : KeyAlgorithm(FastDictionaryInitializer()),
296 : mHash(FastDictionaryInitializer())
297 : {
298 : // Do nothing here; this is used by our "Fast" subclass
299 : }
300 :
301 : private:
302 : RsaHashedKeyAlgorithm(const RsaHashedKeyAlgorithm&) = delete;
303 : RsaHashedKeyAlgorithm& operator=(const RsaHashedKeyAlgorithm&) = delete;
304 :
305 : static bool
306 : InitIds(JSContext* cx, RsaHashedKeyAlgorithmAtoms* atomsCache);
307 :
308 : public:
309 : bool
310 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
311 :
312 : bool
313 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
314 :
315 : void
316 : TraceDictionary(JSTracer* trc);
317 : };
318 :
319 : namespace binding_detail {
320 : struct FastRsaHashedKeyAlgorithm : public RsaHashedKeyAlgorithm
321 : {
322 : inline FastRsaHashedKeyAlgorithm()
323 : : RsaHashedKeyAlgorithm(FastDictionaryInitializer())
324 : {
325 : // Doesn't matter what int we pass to the parent constructor
326 : }
327 : };
328 : } // namespace binding_detail
329 :
330 :
331 : } // namespace dom
332 : } // namespace mozilla
333 :
334 : #endif // mozilla_dom_KeyAlgorithmBinding_h
|