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

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

Issue 44993003: [webcrypto] Make WebCryptoAlgorithm "nullable". (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 1 month 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 | « public/platform/WebCrypto.h ('k') | public/platform/WebCryptoAlgorithmParams.h » ('j') | 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 class WebCryptoAesGcmParams; 78 class WebCryptoAesGcmParams;
79 class WebCryptoRsaOaepParams; 79 class WebCryptoRsaOaepParams;
80 80
81 class WebCryptoAlgorithmParams; 81 class WebCryptoAlgorithmParams;
82 class WebCryptoAlgorithmPrivate; 82 class WebCryptoAlgorithmPrivate;
83 83
84 // The WebCryptoAlgorithm represents a normalized algorithm and its parameters. 84 // The WebCryptoAlgorithm represents a normalized algorithm and its parameters.
85 // * Immutable 85 // * Immutable
86 // * Threadsafe 86 // * Threadsafe
87 // * Copiable (cheaply) 87 // * Copiable (cheaply)
88 //
89 // If WebCryptoAlgorithm "isNull()" then it is invalid to call any of the other
90 // methods on it (other than destruction, assignment, or isNull()).
88 class WebCryptoAlgorithm { 91 class WebCryptoAlgorithm {
89 public: 92 public:
90 #if BLINK_IMPLEMENTATION 93 #if BLINK_IMPLEMENTATION
91 WebCryptoAlgorithm() { } 94 WebCryptoAlgorithm() { }
92 WebCryptoAlgorithm(WebCryptoAlgorithmId, PassOwnPtr<WebCryptoAlgorithmParams >); 95 WebCryptoAlgorithm(WebCryptoAlgorithmId, PassOwnPtr<WebCryptoAlgorithmParams >);
93 #endif 96 #endif
94 97
98 BLINK_EXPORT static WebCryptoAlgorithm createNull();
95 BLINK_EXPORT static WebCryptoAlgorithm adoptParamsAndCreate(WebCryptoAlgorit hmId, WebCryptoAlgorithmParams*); 99 BLINK_EXPORT static WebCryptoAlgorithm adoptParamsAndCreate(WebCryptoAlgorit hmId, WebCryptoAlgorithmParams*);
96 100
97 ~WebCryptoAlgorithm() { reset(); } 101 ~WebCryptoAlgorithm() { reset(); }
98 102
99 WebCryptoAlgorithm(const WebCryptoAlgorithm& other) { assign(other); } 103 WebCryptoAlgorithm(const WebCryptoAlgorithm& other) { assign(other); }
100 WebCryptoAlgorithm& operator=(const WebCryptoAlgorithm& other) 104 WebCryptoAlgorithm& operator=(const WebCryptoAlgorithm& other)
101 { 105 {
102 assign(other); 106 assign(other);
103 return *this; 107 return *this;
104 } 108 }
105 109
110 BLINK_EXPORT bool isNull() const;
111
106 BLINK_EXPORT WebCryptoAlgorithmId id() const; 112 BLINK_EXPORT WebCryptoAlgorithmId id() const;
107 113
108 BLINK_EXPORT WebCryptoAlgorithmParamsType paramsType() const; 114 BLINK_EXPORT WebCryptoAlgorithmParamsType paramsType() const;
109 115
110 // Retrieves the type-specific parameters. The algorithm contains at most 1 116 // Retrieves the type-specific parameters. The algorithm contains at most 1
111 // type of parameters. Retrieving an invalid parameter will return 0. 117 // type of parameters. Retrieving an invalid parameter will return 0.
112 BLINK_EXPORT const WebCryptoAesCbcParams* aesCbcParams() const; 118 BLINK_EXPORT const WebCryptoAesCbcParams* aesCbcParams() const;
113 BLINK_EXPORT const WebCryptoAesKeyGenParams* aesKeyGenParams() const; 119 BLINK_EXPORT const WebCryptoAesKeyGenParams* aesKeyGenParams() const;
114 BLINK_EXPORT const WebCryptoHmacParams* hmacParams() const; 120 BLINK_EXPORT const WebCryptoHmacParams* hmacParams() const;
115 BLINK_EXPORT const WebCryptoHmacKeyParams* hmacKeyParams() const; 121 BLINK_EXPORT const WebCryptoHmacKeyParams* hmacKeyParams() const;
116 BLINK_EXPORT const WebCryptoRsaSsaParams* rsaSsaParams() const; 122 BLINK_EXPORT const WebCryptoRsaSsaParams* rsaSsaParams() const;
117 BLINK_EXPORT const WebCryptoRsaKeyGenParams* rsaKeyGenParams() const; 123 BLINK_EXPORT const WebCryptoRsaKeyGenParams* rsaKeyGenParams() const;
118 BLINK_EXPORT const WebCryptoAesGcmParams* aesGcmParams() const; 124 BLINK_EXPORT const WebCryptoAesGcmParams* aesGcmParams() const;
119 BLINK_EXPORT const WebCryptoRsaOaepParams* rsaOaepParams() const; 125 BLINK_EXPORT const WebCryptoRsaOaepParams* rsaOaepParams() const;
120 126
121 private: 127 private:
122 BLINK_EXPORT void assign(const WebCryptoAlgorithm& other); 128 BLINK_EXPORT void assign(const WebCryptoAlgorithm& other);
123 BLINK_EXPORT void reset(); 129 BLINK_EXPORT void reset();
124 130
125 WebPrivatePtr<WebCryptoAlgorithmPrivate> m_private; 131 WebPrivatePtr<WebCryptoAlgorithmPrivate> m_private;
126 }; 132 };
127 133
128 } // namespace WebKit 134 } // namespace WebKit
129 135
130 #endif 136 #endif
OLDNEW
« no previous file with comments | « public/platform/WebCrypto.h ('k') | public/platform/WebCryptoAlgorithmParams.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698