Confirm-CAEndorsementKeyInfo

Confirm-CAEndorsementKeyInfo

Checks whether the local CA trusts secure hardware for key attestation.

Syntax

Parameter Set: Certificate
Confirm-CAEndorsementKeyInfo [-Certificate] <X509Certificate2> [ <CommonParameters>]

Parameter Set: PublicKeyHash
Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <String> [ <CommonParameters>]

Detailed Description

The Confirm-CAEndorsementKeyInfo cmdlet checks whether the local certification authority (CA) trusts secure hardware, such as a Trusted Platform Module (TPM), for key attestation. The cmdlet checks the endorsement key or certificate. An endorsement key is permanently embedded in the security hardware. The public portion of the endorsement key helps to recognize genuine security hardware.

This cmdlet verifies whether the endorsement public certificate connects by means of a certificate chain to an anchor that the CA trusts for key attestation. Specify an X509 certificate by using the Certificate parameter.

This cmdlet checks whether the endorsement public key exists as a file in a folder configured at the local CA for key attestation. Specify the public key by using the PublicKeyHash parameter.

Parameters

-Certificate<X509Certificate2>

Specifies an X509 public key certificate issued to secure hardware.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

-PublicKeyHash<String>

Specifies an endorsement public key of the secure hardware, as the result of the SHA-256 hash algorithm. This is a 64 character hexadecimal string.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue, ByPropertyName)

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

  • System.String, System.Security.Cryptography.X509Certificate2

Outputs

The output type is the type of the objects that the cmdlet emits.

  • System.Boolean

Examples

Example 1: Check an endorsement certificate

This command checks whether the endorsement certificate Contoso87.cer connects, by means of a certificate chain, to a trusted anchor. This example returns a value of $True.

PS C:\> Confirm-CAEndorsementKeyInfo -Certificate Contoso87.cer

True

Example 2: Check an endorsement key

The command checks for the endorsement public certificate specified as an SHA-256 hash code. This example returns a value of $False. Therefore, the CA does not have this public key.

PS C:\> Confirm-CAEndorsementKeyInfo -PublicKeyHash "1dd117facfbdcbd8713b9c588eef305e61ce3d8e3c6e21e6323a877476ecd167"

False