OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 virtual void setString(const char*, const char*) = 0; | 46 virtual void setString(const char*, const char*) = 0; |
47 virtual void setUint(const char*, unsigned) = 0; | 47 virtual void setUint(const char*, unsigned) = 0; |
48 virtual void setAlgorithm(const char*, const WebCryptoAlgorithm&) = 0; | 48 virtual void setAlgorithm(const char*, const WebCryptoAlgorithm&) = 0; |
49 virtual void setUint8Array(const char*, const WebVector<unsigned char>&) = 0
; | 49 virtual void setUint8Array(const char*, const WebVector<unsigned char>&) = 0
; |
50 }; | 50 }; |
51 | 51 |
52 enum WebCryptoKeyAlgorithmParamsType { | 52 enum WebCryptoKeyAlgorithmParamsType { |
53 WebCryptoKeyAlgorithmParamsTypeNone, | 53 WebCryptoKeyAlgorithmParamsTypeNone, |
54 WebCryptoKeyAlgorithmParamsTypeHmac, | 54 WebCryptoKeyAlgorithmParamsTypeHmac, |
55 WebCryptoKeyAlgorithmParamsTypeAes, | 55 WebCryptoKeyAlgorithmParamsTypeAes, |
56 WebCryptoKeyAlgorithmParamsTypeRsaHashed | 56 WebCryptoKeyAlgorithmParamsTypeRsaHashed, |
| 57 WebCryptoKeyAlgorithmParamsTypeEc, |
57 }; | 58 }; |
58 | 59 |
59 class WebCryptoKeyAlgorithmParams { | 60 class WebCryptoKeyAlgorithmParams { |
60 public: | 61 public: |
61 virtual ~WebCryptoKeyAlgorithmParams() { } | 62 virtual ~WebCryptoKeyAlgorithmParams() { } |
62 virtual WebCryptoKeyAlgorithmParamsType type() const | 63 virtual WebCryptoKeyAlgorithmParamsType type() const |
63 { | 64 { |
64 return WebCryptoKeyAlgorithmParamsTypeNone; | 65 return WebCryptoKeyAlgorithmParamsTypeNone; |
65 } | 66 } |
66 | 67 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 dict->setUint("modulusLength", m_modulusLengthBits); | 163 dict->setUint("modulusLength", m_modulusLengthBits); |
163 dict->setUint8Array("publicExponent", m_publicExponent); | 164 dict->setUint8Array("publicExponent", m_publicExponent); |
164 } | 165 } |
165 | 166 |
166 private: | 167 private: |
167 unsigned m_modulusLengthBits; | 168 unsigned m_modulusLengthBits; |
168 WebVector<unsigned char> m_publicExponent; | 169 WebVector<unsigned char> m_publicExponent; |
169 WebCryptoAlgorithm m_hash; | 170 WebCryptoAlgorithm m_hash; |
170 }; | 171 }; |
171 | 172 |
| 173 class WebCryptoEcKeyAlgorithmParams : public WebCryptoKeyAlgorithmParams { |
| 174 public: |
| 175 explicit WebCryptoEcKeyAlgorithmParams(WebCryptoNamedCurve namedCurve) |
| 176 : m_namedCurve(namedCurve) |
| 177 { |
| 178 } |
| 179 |
| 180 WebCryptoNamedCurve namedCurve() const |
| 181 { |
| 182 return m_namedCurve; |
| 183 } |
| 184 |
| 185 virtual WebCryptoKeyAlgorithmParamsType type() const |
| 186 { |
| 187 return WebCryptoKeyAlgorithmParamsTypeEc; |
| 188 } |
| 189 |
| 190 virtual void writeToDictionary(WebCryptoKeyAlgorithmDictionary* dict) const |
| 191 { |
| 192 switch (m_namedCurve) { |
| 193 case WebCryptoNamedCurveP256: |
| 194 dict->setString("namedCurve", "P-256"); |
| 195 break; |
| 196 case WebCryptoNamedCurveP384: |
| 197 dict->setString("namedCurve", "P-384"); |
| 198 break; |
| 199 case WebCryptoNamedCurveP521: |
| 200 dict->setString("namedCurve", "P-521"); |
| 201 break; |
| 202 } |
| 203 } |
| 204 |
| 205 private: |
| 206 const WebCryptoNamedCurve m_namedCurve; |
| 207 }; |
| 208 |
172 } // namespace blink | 209 } // namespace blink |
173 | 210 |
174 #endif | 211 #endif |
OLD | NEW |