Share via


IWMDRMWriter::GenerateSigningKeyPair method (wmsdkidl.h)

[The feature associated with this page, Windows Media Format 11 SDK, is a legacy feature. It has been superseded by Source Reader and Sink Writer. Source Reader and Sink Writer have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Source Reader and Sink Writer instead of Windows Media Format 11 SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

[GenerateSigningKeyPair is available for use in the operating systems specified in the Requirements section. It may be altered or unavailable in subsequent versions. Instead, use Microsoft PlayReady. ]

The GenerateSigningKeyPair method generates a public and private key pair that are used to sign the DRM header object.

Syntax

HRESULT GenerateSigningKeyPair(
  [out]     WCHAR *pwszPrivKey,
  [in, out] DWORD *pcwchPrivKeyLength,
  [out]     WCHAR *pwszPubKey,
  [in, out] DWORD *pcwchPubKeyLength
);

Parameters

[out] pwszPrivKey

Pointer to a wide-character null-terminated string containing the private key. Set to NULL to retrieve the size of the string, which is returned in pcwchPrivKeyLength. Use this key to set the DRM_HeaderSignPrivKey property.

[in, out] pcwchPrivKeyLength

Pointer to a DWORD containing the size, in wide characters, of pwszPrivKey. This size includes the terminating null character.

[out] pwszPubKey

Pointer to a wide-character null-terminated string containing the public key. Set to NULL to retrieve the size of the string, which is returned in pcwchPubKeyLength. This key is shared only with the license server; it enables the license server to verify the signature of the DRM header object when users attempt to obtain a content license for a file.

[in, out] pcwchPubKeyLength

Pointer to a DWORD containing the size, in wide characters, of pwsPubKey. This size includes the terminating null character.

Return value

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Remarks

Do not confuse the signature that is applied to the ASF header object, using these keys, with the signature that is applied to the DRM header object by using the DRM_LASignaturePrivKey and other properties that make up the digital signature object in the file.

The keys generated by this method are the basis for revocation lists, so the number of different key pairs you use will be based on your particular business needs. In general, the same key pair should be used for some set of content that forms a logical group and that shares the same revocation list.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only],Windows Media Format 9 Series SDK, or later versions of the SDK
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wmsdkidl.h (include Wmsdk.h)
Library Wmvcore.lib; WMStubDRM.lib (if you use DRM)

See also

IWMDRMWriter Interface