|
@ -0,0 +1,42 @@ |
|
|
|
|
|
// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
|
|
|
|
|
|
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
|
|
|
|
|
|
|
|
|
|
|
|
using System.IO; |
|
|
|
|
|
using System.Reflection; |
|
|
|
|
|
using System.Security.Cryptography.X509Certificates; |
|
|
|
|
|
|
|
|
|
|
|
namespace Identity.API.Certificate |
|
|
|
|
|
{ |
|
|
|
|
|
static class Certificate |
|
|
|
|
|
{ |
|
|
|
|
|
public static X509Certificate2 Get() |
|
|
|
|
|
{ |
|
|
|
|
|
var assembly = typeof(Certificate).GetTypeInfo().Assembly; |
|
|
|
|
|
var names = assembly.GetManifestResourceNames(); |
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************************************** |
|
|
|
|
|
* Please note that here we are using a local certificate only for testing purposes. In a |
|
|
|
|
|
* real environment the certificate should be created and stored in a secure way, which is out |
|
|
|
|
|
* of the scope of this project. |
|
|
|
|
|
**********************************************************************************************/ |
|
|
|
|
|
using (var stream = assembly.GetManifestResourceStream("Identity.API.Certificate.idsrv3test.pfx")) |
|
|
|
|
|
{ |
|
|
|
|
|
return new X509Certificate2(ReadStream(stream), "idsrv3test"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static byte[] ReadStream(Stream input) |
|
|
|
|
|
{ |
|
|
|
|
|
byte[] buffer = new byte[16 * 1024]; |
|
|
|
|
|
using (MemoryStream ms = new MemoryStream()) |
|
|
|
|
|
{ |
|
|
|
|
|
int read; |
|
|
|
|
|
while ((read = input.Read(buffer, 0, buffer.Length)) > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
ms.Write(buffer, 0, read); |
|
|
|
|
|
} |
|
|
|
|
|
return ms.ToArray(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |