// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.media.drm;

using fuchsia.media;

const MAX_SESSION_ID_SIZE uint32 = 512;
const MAX_LICENSE_INIT_DATA_TYPE_SIZE uint32 = 100;
const MAX_HDCP_VERSION_SIZE uint32 = 16;

alias SessionId = string:MAX_SESSION_ID_SIZE;
alias LicenseInitDataType = string:MAX_LICENSE_INIT_DATA_TYPE_SIZE;
alias HdcpVersion = string:MAX_HDCP_VERSION_SIZE;
alias EncryptionScheme = fuchsia.media.EncryptionScheme;
