Index: trunk/src/content/child/webcrypto/webcrypto_util.cc |
=================================================================== |
--- trunk/src/content/child/webcrypto/webcrypto_util.cc (revision 266902) |
+++ trunk/src/content/child/webcrypto/webcrypto_util.cc (working copy) |
@@ -22,12 +22,27 @@ |
return &data[0]; |
} |
-uint8* Uint8VectorStart(std::vector<uint8>* data) { |
- if (data->empty()) |
- return NULL; |
- return &(*data)[0]; |
+void ShrinkBuffer(blink::WebArrayBuffer* buffer, unsigned int new_size) { |
+ DCHECK_LE(new_size, buffer->byteLength()); |
+ |
+ if (new_size == buffer->byteLength()) |
+ return; |
+ |
+ blink::WebArrayBuffer new_buffer = blink::WebArrayBuffer::create(new_size, 1); |
+ DCHECK(!new_buffer.isNull()); |
+ memcpy(new_buffer.data(), buffer->data(), new_size); |
+ *buffer = new_buffer; |
} |
+blink::WebArrayBuffer CreateArrayBuffer(const uint8* data, |
+ unsigned int data_size) { |
+ blink::WebArrayBuffer buffer = blink::WebArrayBuffer::create(data_size, 1); |
+ DCHECK(!buffer.isNull()); |
+ if (data_size) // data_size == 0 might mean the data pointer is invalid |
+ memcpy(buffer.data(), data, data_size); |
+ return buffer; |
+} |
+ |
// This function decodes unpadded 'base64url' encoded data, as described in |
// RFC4648 (http://www.ietf.org/rfc/rfc4648.txt) Section 5. To do this, first |
// change the incoming data to 'base64' encoding by applying the appropriate |