// Copyright (c) 2009-2010 The Chromium OS 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 SECURE_BLOB_H_
#define SECURE_BLOB_H_

#include <chromeos/utility.h>

namespace cryptohome {

typedef unsigned char SecureBlobElement;

// SecureBlob erases the contents on destruction.  It does not guarantee erasure
// on resize, assign, etc.
class SecureBlob : public chromeos::Blob {
 public:
  SecureBlob();
  SecureBlob(chromeos::Blob::const_iterator begin,
             chromeos::Blob::const_iterator end);
  explicit SecureBlob(int size);
  SecureBlob(const unsigned char* from, int from_length);
  SecureBlob(const char* from, int from_length);
  virtual ~SecureBlob();

  void resize(size_type sz);
  void resize(size_type sz, const SecureBlobElement& x);

  void clear_contents();

  void* data();
  const void* const_data() const;
};

}  // cryptohome

#endif  // SECURE_BLOB_H_
