|  | // Copyright 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. | 
|  |  | 
|  | #include "components/webcrypto/crypto_data.h" | 
|  |  | 
|  | namespace webcrypto { | 
|  |  | 
|  | CryptoData::CryptoData() : bytes_(NULL), byte_length_(0) { | 
|  | } | 
|  |  | 
|  | CryptoData::CryptoData(const unsigned char* bytes, unsigned int byte_length) | 
|  | : bytes_(bytes), byte_length_(byte_length) { | 
|  | } | 
|  |  | 
|  | CryptoData::CryptoData(const std::vector<unsigned char>& bytes) | 
|  | : bytes_(bytes.data()), | 
|  | byte_length_(static_cast<unsigned int>(bytes.size())) {} | 
|  |  | 
|  | CryptoData::CryptoData(const std::string& bytes) | 
|  | : bytes_(bytes.size() ? reinterpret_cast<const unsigned char*>(bytes.data()) | 
|  | : NULL), | 
|  | byte_length_(static_cast<unsigned int>(bytes.size())) { | 
|  | } | 
|  |  | 
|  | CryptoData::CryptoData(const blink::WebVector<unsigned char>& bytes) | 
|  | : bytes_(bytes.data()), | 
|  | byte_length_(static_cast<unsigned int>(bytes.size())) { | 
|  | } | 
|  |  | 
|  | }  // namespace webcrypto |