Documentation
¶
Overview ¶
certificate.go
chain.go
common.go
crypto.go
license.go
models_cert.go
models_xmr.go
Index ¶
- Constants
- func GenerateKey() (*ecdsa.PrivateKey, error)
- func ParseRawPrivateKey(data []byte) (*ecdsa.PrivateKey, error)
- func PrivateKeyBytes(key *ecdsa.PrivateKey) ([]byte, error)
- func UuidOrGuid(data []byte)
- type AsymmetricEncryptionType
- type AuxKey
- type AuxKeyEntry
- type BasicInfo
- type BcertObject
- type CertHeader
- type CertId
- type CertKey
- type Certificate
- type Chain
- type ChainHeader
- type ClientId
- type ContentKey
- type DeviceInfo
- type EccDeviceKey
- type FeatureInfo
- type KeyInfo
- type KeyMaterial
- type License
- type ManufacturerInfo
- type ManufacturerStrings
- type ObjectHeader
- type OuterContainer
- type PaddedString
- type Signature
- type SignatureData
- type SignatureInfo
- type UnknownRecord
- type XmrObject
Constants ¶
View Source
const ( CertHeaderTag = 0x43455254 // "CERT" CertVersion = 0x00000001 )
View Source
const ( ChainHeaderTag = 0x43484149 // "CHAI" ChainVersion = 0x00000001 )
View Source
const ( HeaderLength = (4 * 2) + 16 // Assuming SIZEOF(DRM_ID) == 16 MagicConstant = 0x584D5200 // 'XMR\0' )
Variables ¶
This section is empty.
Functions ¶
func GenerateKey ¶ added in v1.8.5
func GenerateKey() (*ecdsa.PrivateKey, error)
func ParseRawPrivateKey ¶ added in v1.8.5
func ParseRawPrivateKey(data []byte) (*ecdsa.PrivateKey, error)
func PrivateKeyBytes ¶ added in v1.8.1
func PrivateKeyBytes(key *ecdsa.PrivateKey) ([]byte, error)
func UuidOrGuid ¶
func UuidOrGuid(data []byte)
Types ¶
type AsymmetricEncryptionType ¶ added in v1.9.0
type AsymmetricEncryptionType uint16
AsymmetricEncryptionType is used for encrypting the content key
const ( AsymmetricEncryptionTypeInvalid AsymmetricEncryptionType = 0x0000 AsymmetricEncryptionTypeRSA1024 AsymmetricEncryptionType = 0x0001 AsymmetricEncryptionTypeChainedLicense AsymmetricEncryptionType = 0x0002 AsymmetricEncryptionTypeECC256 AsymmetricEncryptionType = 0x0003 AsymmetricEncryptionTypeECC256WithKZ AsymmetricEncryptionType = 0x0004 AsymmetricEncryptionTypeTEETransient AsymmetricEncryptionType = 0x0005 AsymmetricEncryptionTypeECC256ViaSymmetric AsymmetricEncryptionType = 0x0006 )
type AuxKey ¶
type AuxKey struct {
Valid bool
Entries uint16
EntriesList []AuxKeyEntry
}
type AuxKeyEntry ¶ added in v1.9.0
type BcertObject ¶ added in v1.9.0
type BcertObject uint16
const ( BcertObjectBasic BcertObject = 0x0001 BcertObjectDomain BcertObject = 0x0002 BcertObjectPc BcertObject = 0x0003 BcertObjectDevice BcertObject = 0x0004 BcertObjectFeature BcertObject = 0x0005 BcertObjectKey BcertObject = 0x0006 BcertObjectManufacturer BcertObject = 0x0007 BcertObjectSignature BcertObject = 0x0008 BcertObjectSilverlight BcertObject = 0x0009 BcertObjectMetering BcertObject = 0x000a BcertObjectExtDataSignKey BcertObject = 0x000b BcertObjectExtDataContainer BcertObject = 0x000c BcertObjectExtDataSignature BcertObject = 0x000d BcertObjectExtDataHwid BcertObject = 0x000e BcertObjectServer BcertObject = 0x000f BcertObjectSecurityVersion BcertObject = 0x0010 BcertObjectSecurityVersion2 BcertObject = 0x0011 )
Object Types
type CertHeader ¶ added in v1.9.0
type Certificate ¶
type Certificate struct {
Header CertHeader
BasicInfo *BasicInfo
DeviceInfo *DeviceInfo
FeatureInfo *FeatureInfo
KeyInfo *KeyInfo
ManufacturerInfo *ManufacturerInfo
SignatureInfo *SignatureInfo
RecordOrder []uint16
UnknownRecords map[uint16][]UnknownRecord
}
type Chain ¶
type Chain struct {
Header ChainHeader
Certificates []Certificate
}
func ParseChain ¶ added in v1.8.6
func (*Chain) GenerateLeaf ¶ added in v1.8.6
func (c *Chain) GenerateLeaf(modelKey, signingKey, encryptKey *ecdsa.PrivateKey) error
func (*Chain) LicenseRequestBytes ¶ added in v1.8.9
type ChainHeader ¶ added in v1.9.0
type ContentKey ¶
type DeviceInfo ¶ added in v1.9.0
type DeviceInfo struct {
Header ObjectHeader
CbMaxLicense uint32
CbMaxHeader uint32
MaxChainDepth uint32
}
type EccDeviceKey ¶ added in v1.9.0
type FeatureInfo ¶ added in v1.9.0
type FeatureInfo struct {
Header ObjectHeader
NumFeatureEntries uint32
FeatureSet []uint32
}
type KeyInfo ¶
type KeyInfo struct {
Header ObjectHeader
NumKeys uint32
Keys []CertKey
}
type KeyMaterial ¶ added in v1.9.0
type KeyMaterial struct {
Valid bool
ContentKey ContentKey
ECCKey EccDeviceKey
AuxKey AuxKey
}
type License ¶
type License struct {
RightsIdBuffer []byte
IRightsId uint32
Version uint32
ContainerOuter OuterContainer
XMRLic []byte
CBXMRLic uint32
}
func ParseLicense ¶ added in v1.8.6
ParseLicense processes XML license data and returns the parsed License object.
type ManufacturerInfo ¶ added in v1.9.0
type ManufacturerInfo struct {
Header ObjectHeader
Flags uint32
ManufacturerStrings ManufacturerStrings
}
type ManufacturerStrings ¶ added in v1.9.0
type ManufacturerStrings struct {
ManufacturerName PaddedString
ModelName PaddedString
ModelNumber PaddedString
}
type ObjectHeader ¶ added in v1.9.0
type OuterContainer ¶ added in v1.9.0
type OuterContainer struct {
Valid bool
ContainerKeys KeyMaterial
Signature Signature
}
type PaddedString ¶ added in v1.9.0
type PaddedString string
func (PaddedString) String ¶ added in v1.9.0
func (ps PaddedString) String() string
type SignatureData ¶ added in v1.9.0
type SignatureInfo ¶ added in v1.9.0
type SignatureInfo struct {
Header ObjectHeader
SignatureType uint16
SignatureData SignatureData
IssuerKeyLength uint32 // bits natively
IssuerKey []byte
}
type UnknownRecord ¶ added in v1.9.2
type XmrObject ¶ added in v1.9.0
type XmrObject uint16
const ( XmrObjectInvalid XmrObject = 0x0000 XmrObjectOuterContainer XmrObject = 0x0001 XmrObjectGlobalPolicyContainer XmrObject = 0x0002 XmrObjectMinimumEnvironmentObject XmrObject = 0x0003 XmrObjectPlaybackPolicyContainer XmrObject = 0x0004 XmrObjectOutputProtectionObject XmrObject = 0x0005 XmrObjectUplinkKidObject XmrObject = 0x0006 XmrObjectExplicitAnalogVideoOutputProtectionContainer XmrObject = 0x0007 XmrObjectAnalogVideoOutputConfigurationObject XmrObject = 0x0008 XmrObjectKeyMaterialContainer XmrObject = 0x0009 XmrObjectContentKeyObject XmrObject = 0x000A XmrObjectSignatureObject XmrObject = 0x000B XmrObjectSerialNumberObject XmrObject = 0x000C XmrObjectSettingsObject XmrObject = 0x000D XmrObjectCopyPolicyContainer XmrObject = 0x000E XmrObjectAllowPlaylistburnPolicyContainer XmrObject = 0x000F XmrObjectInclusionListObject XmrObject = 0x0010 XmrObjectPriorityObject XmrObject = 0x0011 XmrObjectExpirationObject XmrObject = 0x0012 XmrObjectIssuedateObject XmrObject = 0x0013 XmrObjectExpirationAfterFirstuseObject XmrObject = 0x0014 XmrObjectExpirationAfterFirststoreObject XmrObject = 0x0015 XmrObjectMeteringObject XmrObject = 0x0016 XmrObjectPlaycountObject XmrObject = 0x0017 XmrObjectGracePeriodObject XmrObject = 0x001A XmrObjectCopycountObject XmrObject = 0x001B XmrObjectCopyProtectionObject XmrObject = 0x001C XmrObjectPlaylistburnCountObject XmrObject = 0x001F XmrObjectRevocationInformationVersionObject XmrObject = 0x0020 XmrObjectRsaDeviceKeyObject XmrObject = 0x0021 XmrObjectSourceidObject XmrObject = 0x0022 XmrObjectRevocationContainer XmrObject = 0x0025 XmrObjectRsaLicenseGranterKeyObject XmrObject = 0x0026 XmrObjectUseridObject XmrObject = 0x0027 XmrObjectRestrictedSourceidObject XmrObject = 0x0028 XmrObjectDomainIdObject XmrObject = 0x0029 XmrObjectEccDeviceKeyObject XmrObject = 0x002A XmrObjectGenerationNumberObject XmrObject = 0x002B XmrObjectPolicyMetadataObject XmrObject = 0x002C XmrObjectOptimizedContentKeyObject XmrObject = 0x002D XmrObjectExplicitDigitalAudioOutputProtectionContainer XmrObject = 0x002E XmrObjectRingtonePolicyContainer XmrObject = 0x002F XmrObjectExpirationAfterFirstplayObject XmrObject = 0x0030 XmrObjectDigitalAudioOutputConfigurationObject XmrObject = 0x0031 XmrObjectRevocationInformationVersion2Object XmrObject = 0x0032 XmrObjectEmbeddingBehaviorObject XmrObject = 0x0033 XmrObjectSecurityLevel XmrObject = 0x0034 XmrObjectCopyToPcContainer XmrObject = 0x0035 XmrObjectPlayEnablerContainer XmrObject = 0x0036 XmrObjectMoveEnablerObject XmrObject = 0x0037 XmrObjectCopyEnablerContainer XmrObject = 0x0038 XmrObjectPlayEnablerObject XmrObject = 0x0039 XmrObjectCopyEnablerObject XmrObject = 0x003A XmrObjectUplinkKid2Object XmrObject = 0x003B XmrObjectCopyPolicy2Container XmrObject = 0x003C XmrObjectCopycount2Object XmrObject = 0x003D XmrObjectRingtoneEnablerObject XmrObject = 0x003E XmrObjectExecutePolicyContainer XmrObject = 0x003F XmrObjectExecutePolicyObject XmrObject = 0x0040 XmrObjectReadPolicyContainer XmrObject = 0x0041 XmrObjectExtensiblePolicyReserved42 XmrObject = 0x0042 XmrObjectExtensiblePolicyReserved43 XmrObject = 0x0043 XmrObjectExtensiblePolicyReserved44 XmrObject = 0x0044 XmrObjectExtensiblePolicyReserved45 XmrObject = 0x0045 XmrObjectExtensiblePolicyReserved46 XmrObject = 0x0046 XmrObjectExtensiblePolicyReserved47 XmrObject = 0x0047 XmrObjectExtensiblePolicyReserved48 XmrObject = 0x0048 XmrObjectExtensiblePolicyReserved49 XmrObject = 0x0049 XmrObjectExtensiblePolicyReserved4a XmrObject = 0x004A XmrObjectExtensiblePolicyReserved4b XmrObject = 0x004B XmrObjectExtensiblePolicyReserved4c XmrObject = 0x004C XmrObjectExtensiblePolicyReserved4d XmrObject = 0x004D XmrObjectExtensiblePolicyReserved4e XmrObject = 0x004E XmrObjectExtensiblePolicyReserved4f XmrObject = 0x004F XmrObjectRemovalDateObject XmrObject = 0x0050 XmrObjectAuxKeyObject XmrObject = 0x0051 XmrObjectUplinkxObject XmrObject = 0x0052 XmrObjectMaximumDefined XmrObject = 0x0052 )
Source Files
¶
Click to show internal directories.
Click to hide internal directories.