import "41.neocities.org/playReady/license"
const ( OUTER_CONTAINER_ENTRY_TYPE XmrType = 1 GLOBAL_POLICY_CONTAINER_ENTRY_TYPE = 2 PLAYBACK_POLICY_CONTAINER_ENTRY_TYPE = 4 MINIMUM_OUTPUT_PROTECTION_LEVELS_ENTRY_TYPE = 5 EXPLICIT_ANALOG_VIDEO_PROTECTION_ENTRY_TYPE = 7 ANALOG_VIDEO_OPL_ENTRY_TYPE = 8 KEY_MATERIAL_CONTAINER_ENTRY_TYPE = 9 CONTENT_KEY_ENTRY_TYPE = 10 SIGNATURE_ENTRY_TYPE = 11 SERIAL_NUMBER_ENTRY_TYPE = 12 RIGHTS_ENTRY_TYPE = 13 EXPIRATION_ENTRY_TYPE = 18 ISSUEDATE_ENTRY_TYPE = 19 METERING_ENTRY_TYPE = 22 GRACEPERIOD_ENTRY_TYPE = 26 SOURCEID_ENTRY_TYPE = 34 RESTRICTED_SOURCEID_ENTRY_TYPE = 40 DOMAIN_ID_ENTRY_TYPE = 41 DEVICE_KEY_ENTRY_TYPE = 42 POLICY_METADATA_ENTRY_TYPE = 44 OPTIMIZED_CONTENT_KEY_ENTRY_TYPE = 45 EXPLICIT_DIGITAL_AUDIO_PROTECTION_ENTRY_TYPE = 46 EXPIRE_AFTER_FIRST_USE_ENTRY_TYPE = 48 DIGITAL_AUDIO_OPL_ENTRY_TYPE = 49 REVOCATION_INFO_VERSION_ENTRY_TYPE = 50 EMBEDDING_BEHAVIOR_ENTRY_TYPE = 51 SECURITY_LEVEL_ENTRY_TYPE = 52 MOVE_ENABLER_ENTRY_TYPE = 55 UPLINK_KID_ENTRY_TYPE = 59 COPY_POLICIES_CONTAINER_ENTRY_TYPE = 60 COPY_COUNT_ENTRY_TYPE = 61 REMOVAL_DATE_ENTRY_TYPE = 80 AUX_KEY_ENTRY_TYPE = 81 UPLINKX_ENTRY_TYPE = 82 REAL_TIME_EXPIRATION_ENTRY_TYPE = 85 EXPLICIT_DIGITAL_VIDEO_PROTECTION_ENTRY_TYPE = 88 DIGITAL_VIDEO_OPL_ENTRY_TYPE = 89 SECURESTOP_ENTRY_TYPE = 90 COPY_UNKNOWN_OBJECT_ENTRY_TYPE = 65533 GLOBAL_POLICY_UNKNOWN_OBJECT_ENTRY_TYPE = 65533 PLAYBACK_UNKNOWN_OBJECT_ENTRY_TYPE = 65533 COPY_UNKNOWN_CONTAINER_ENTRY_TYPE = 65534 UNKNOWN_CONTAINERS_ENTRY_TYPE = 65534 PLAYBACK_UNKNOWN_CONTAINER_ENTRY_TYPE = 65534 )
type ContentKey struct { KeyId Guid KeyType uint16 CipherType uint16 Length uint16 Value []byte Integrity Guid Key Guid }
func (c *ContentKey) Decode(data []byte) error
func (c *ContentKey) ECC256(key crypto.EcKey) []byte
type Guid struct { Data1 uint32 // little endian Data2 uint16 // little endian Data3 uint16 // little endian Data4 uint64 // big endian }
type LicenseResponse struct { RawData []byte Magic [4]byte Offset uint16 Version uint16 RightsId [16]byte OuterContainer FTLV ContentKeyObject *ContentKey ECCKeyObject *ECCKey SignatureObject *Signature AuxKeyObject *AuxKeys }
func (l *LicenseResponse) Decode(data []byte) error
func (l *LicenseResponse) Encode() []byte
func (l *LicenseResponse) Parse(data string) error
func (l *LicenseResponse) Verify(ContentIntegrity []byte) bool
auxkeys.go contentkey.go ecckey.go ftlv.go guid.go licenseresponse.go signature.go