Index: content/renderer/webcrypto/crypto_data.h |
diff --git a/content/renderer/webcrypto/crypto_data.h b/content/renderer/webcrypto/crypto_data.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5c81187911609c95c34fbccfecbf31250c013e34 |
--- /dev/null |
+++ b/content/renderer/webcrypto/crypto_data.h |
@@ -0,0 +1,54 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CONTENT_RENDERER_WEBCRYPTO_CRYPTO_DATA_ |
+#define CONTENT_RENDERER_WEBCRYPTO_CRYPTO_DATA_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "base/basictypes.h" |
+#include "content/common/content_export.h" |
+ |
+namespace blink { |
+class WebArrayBuffer; |
+} |
+ |
+namespace content { |
+ |
+namespace webcrypto { |
+ |
+// Helper to pass around a range of immutable bytes. This is conceptually |
+// similar to base::StringPiece, but for crypto byte data. |
+// |
+// The data used at construction is NOT owned, and should remain valid as long |
+// as the CryptoData is being used. |
+class CONTENT_EXPORT CryptoData { |
+ public: |
+ // Constructs empty data. |
+ CryptoData(); |
+ |
+ CryptoData(const unsigned char* bytes, unsigned int byte_length); |
+ |
+ // Allow implicit conversions for convenience. |
Ryan Sleevi
2014/02/13 04:24:24
comment is no longer accurate
eroman
2014/02/13 23:05:38
Done. Thanks for spotting that.
|
+ explicit CryptoData(const std::vector<unsigned char>& bytes); |
+ explicit CryptoData(const std::string& bytes); |
+ explicit CryptoData(const blink::WebArrayBuffer& buffer); |
+ |
+ const unsigned char* bytes() const { return bytes_; } |
+ unsigned int byte_length() const { return byte_length_; } |
+ |
+ private: |
+ const unsigned char* bytes_; |
Ryan Sleevi
2014/02/13 04:24:24
const unsigned char* const?
eroman
2014/02/13 23:05:38
Done.
|
+ const unsigned int byte_length_; |
+ |
+ // Copying would not be safe, since the data is not owned. |
+ DISALLOW_COPY_AND_ASSIGN(CryptoData); |
+}; |
+ |
+} // namespace webcrypto |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_RENDERER_WEBCRYPTO_CRYPTO_DATA_ |