ConvertFrom-AadBase64Certificate.ps1

<#
.SYNOPSIS
Converts a single Base64Encoded certificate (Not Chained Ceritificate) to a Custom PSObject for easy readability
 
.DESCRIPTION
Converts a single Base64Encoded certificate (Not Chained Ceritificate) to a Custom PSObject for easy readability
 
 
.PARAMETER Base64String
The Base64Encoded Certificate
 
.EXAMPLE
ConvertFrom-AadBase64Certificate -Base64String "MIIHkDCCBnigAwIBAgIRALENqydLHXg/u+VM04+dg2QwDQYJKoZIhvcNAQELBQAwgZ..."
 
.NOTES
General notes
#>


function ConvertFrom-AadBase64Certificate

{
    [cmdletbinding()]

    param(
        [parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]
        [String]
        $Base64String
    )

    $bytes = [System.Text.Encoding]::UTF8.GetBytes($Base64String)
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList @(,$bytes)
    $kid = ConvertFrom-AadThumbprintToBase64String -Thumbprint $cert.Thumbprint
    
    $Properties = @{ 
        Kid = $kid; 
        Thumbprint = $cert.Thumbprint;
        NotAfter = $cert.NotAfter;
        NotBefore = $cert.NotBefore; 
        Subject = $cert.Subject;
        Issuer = $cert.Issuer;
        Certificate = $cert;
    }

    $Object = new-object PSObject -Property $Properties

    return $Object
}