WMRMHeader.Sign
The Sign method adds a signature to the content header.
Syntax
WMRMHeader.Sign(bstrPrivKey)
Parameters
bstrPrivKey
[in] String containing a private key.
Return Values
If the method succeeds, it returns S_OK. If it fails, it returns a number in the error object.
Return code | Description |
0x80004005 | An unspecified error occurred. |
0x80070057 | The specified parameter is not valid. |
Remarks
The content packager uses a private key to sign the header. The license issuer uses a public key to verify the signature. The content packager can use the WMRMKeys.GenerateSigningKeys method to create both the private and public signing keys before delivering the latter to the license issuer.
Example Code
' Declare variables and objects.
Dim sKID, sCID, sSeed, sKey, sHeader
Dim sPrivKey, sPubKey
Dim HeaderObj
Dim KeysObj
Dim ProtectObj
' Create objects.
Set HeaderObj = Server.CreateObject("Wmrmobjs.WMRMHeader")
Set KeysObj = Server.CreateObject("Wmrmobjs.WMRMKeys")
Set ProtectObj = Server.CreateObject("Wmrmobjs.WMRMProtect")
' Create the key ID and content ID, and key. Set the key ID and
' the content ID into the header. Store the key in a secure manner.
sKID = KeysObj.GenerateKeyID()
sCID = KeysObj.GenerateKeyID()
KeysObj.KeyID = sKID
HeaderObj.KeyID = sKID
HeaderObj.ContentID = sCID
' Replace XXX with the license key seed.
sSeed = "XXX"
KeysObj.Seed = sSeed
' Generate the key.
sKey = KeysObj.GenerateKey()
' Require individualization version 2.2.
' Version numbers change. Verify that this number is up to date.
HeaderObj.IndividualizedVersion = "2.2"
' Specify the URL of the license issuer, and set it into
' the header.
sURL = "https://www.LicenseIssuer.com/getlicense.asp"
HeaderObj.LicenseAcqURL = sURL
' Set name-value pairs describing the content into the header.
HeaderObj.Attribute("Author") = "name of the author"
HeaderObj.Attribute("ContentDistributor") = "name of the distributor"
HeaderObj.Attribute("ContentType") = "type of content distributed"
HeaderObj.Attribute("Title") = "title of the content"
' Set the checksum.
HeaderObj.SetCheckSum(sKey)
' Replace XXX with the packaging server's private key.
sPrivKey = "XXX"
' Sign the header.
HeaderObj.Sign(sPrivKey)
' Retrieve the string containing the header.
sHeader = HeaderObj.Header
' Set the header string into the WMRMProtect object.
ProtectObj.Header = sHeader
' Set the key into the WMRMProtect object.
ProtectObj.Key = sKey
' Specify the name of the file to be protected.
ProtectObj.InputFile = "c:\input_file.wmv"
' Generate a protected file.
ProtectObj.ProtectFile("c:\output_file_1.wmv")
Requirements
Version: Windows Media Rights Manager 7 SDK or later
Reference: wmrmobjs 1.0 Type Library
Library: wmrmobjs.dll
Platform: Windows Server 2003
See Also