问题描述
我一直在寻找一个包含另一个输入引导输入组的代码段,但找不到一个,所以您不知道我自己编码了一个代码段。
解决方法
public static string getAppleJWT(string privateKeyPath,string teamId,string keyId)
{
var private_key = getPrivateKey(privateKeyPath);
var utc0 = new DateTime(1970,1,DateTimeKind.Utc);
var issueTime = DateTime.Now;
var payload = new Dictionary<string,object>()
{
{ "iss",teamId },{ "iat",(int)issueTime.Subtract(utc0).TotalSeconds }
};
var headers = new Dictionary<string,object>()
{
{ "alg","ES256"},{ "kid",keyId}
};
return Jose.JWT.Encode(payload,private_key,JwsAlgorithm.ES256,headers);
}
public static CngKey getPrivateKey(string privateKeyPath)
{
var privateKeyLines = System.IO.File.ReadAllLines(privateKeyPath).ToList();
privateKeyLines.RemoveAt(privateKeyLines.Count - 1);
privateKeyLines.RemoveAt(0);
var privateKey = string.Join("",privateKeyLines);
var secretKeyFile = Convert.FromBase64String(privateKey);
var secretKey = CngKey.Import(secretKeyFile,CngKeyBlobFormat.Pkcs8PrivateBlob);
return secretKey;
}