Chromium Code Reviews| 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_ |