// Copyright 2015 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 CHROMECAST_PUBLIC_MEDIA_DECRYPT_CONTEXT_H_
#define CHROMECAST_PUBLIC_MEDIA_DECRYPT_CONTEXT_H_

#include <stdint.h>
#include <vector>

#include "cast_key_system.h"

namespace chromecast {
namespace media {
class CastDecoderBuffer;

// Provides the information needed to decrypt frames.
class DecryptContext {
 public:
  virtual ~DecryptContext() {}

  // Get the key system to use for decryption.
  virtual CastKeySystem GetKeySystem() = 0;

  // Decrypts the given buffer. Returns true/false for success/failure.
  //
  // |opaque_handle| is a handle to the secure memory, which is only accessible
  // by TEE.
  //
  // The decrypted data will be of size |buffer.data_size()| and there must be
  // enough space in |opaque_handle| to store that data.
  //
  // If non-zero, |data_offset| specifies an offset to be applied to
  // |opaque_handle| before the decrypted data is written.
  virtual bool Decrypt(CastDecoderBuffer* buffer,
                       uint8_t* opaque_handle,
                       size_t data_offset) = 0;
};

}  // namespace media
}  // namespace chromecast

#endif  // CHROMECAST_PUBLIC_MEDIA_DECRYPT_CONTEXT_H_
