SecureDeviceAssociationTemplate.CreateCertificateRequestAsync Method

This method initiates an asynchronous operation to generate a new certificate request and return it as a Public-Key Cryptography Standards (PKCS) #10-formatted buffer. This request is intended to be transferred to an authorization server (over HTTPS + XSTS Token) so it can issue a client IPsec certificate representing the console in that security realm. Representing a particular user or set of users on the console is not recommended, as the network stack does not enforce updates to this certificate authorization when users change.

Syntax

public:
IAsyncOperation<IBuffer^ >^ CreateCertificateRequestAsync(
         String^ subjectName
)  

Parameters

subjectName
Type: String 

 

The Relative Distinguished Name (RDN) to be used as the certificate subject. Apps can define this string to be whatever suits their authorization scheme, using the string-ified format described in RFC 4514.

Return value

Type: IAsyncOperation<IBuffer^ > 

On successful completion, the buffer returned by this method contains a single generated public/private key pair and prepares for a single certificate to be used across all Secure Device Associations established using templates referencing the particular relying party. That certificate must subsequently be provided to Xbox Secure Sockets via the InstallCertificateAsync method. The subject name of that installed certificate must match the one specified to CreateCertificateRequestAsync as subjectName.

Remarks

In the current implementation, neither the private key nor the certificate request is persisted beyond the life of the application.

Xbox Secure Sockets currently always generates a 2048-bit RSA public key, signed with SHA-1 (OID 1.3.14.3.2.29).

When acting on the certificate request buffer, titles should not generate an IPsec certificate that is valid for longer than the XSTS Single-Sign-On (SSO) token used to present the request and form the basis of authorization. Apps are currently required to manage certificate lifetime themselves and request/issue a new certificate when appropriate.

This method cannot be invoked on Secure Device Association Templates that do not have a relying party declared in the network manifest.

Only one certificate request for a relying party can be “outstanding: at a given time. Calling CreateCertificateRequestAsync fails if a previous operation completed successfully but has not been accompanied by a corresponding successful InstallCertificateAsync action. This includes requests generated by other templates declaring the same relying party string.

Requirements

Namespace: Windows.Xbox.Networking

Metadata: windows.winmd

See also

Reference

SecureDeviceAssociationTemplate Class

SecureDeviceAssociationTemplate Members

Windows.Xbox.Networking Namespace