It contains:
- The generated AES-256 private-key encrypted using a public key
- The actual payload encrypted with the generated AES-256 private-key
На основе вышеуказанного понимания у меня есть этот код (dotnet8), не используя Bouncycastle или каких-либо сторонних библиотек, только Microsoft System.security.cryptography.pkcs nuget: < /p>
< /p>
После попытки нескольких различных контента, похоже, что первые 16 байтов всегда отсутствуют. Незатратные и расшифрованные строки идеально соответствуют. Мне нужна кто-то помощь! < /P>
Код, используемый для создания EncryptedCMS, если кто-то думает, что это поможет решить проблему: < /p>
static void main()
{
byte[] content = File.ReadAllBytes(inputFile);
byte[] encodedContent = new PKCSUtil().Encode(content, certFile, certPass);
File.WriteAllBytes(outputFile, encodedContent);
Console.WriteLine("Encoded content written successfully.");
}
static void byte[] Encode(byte[] content, string publicKeyCertFile, string? password = null)
{
X509Certificate2 recipientCert = new X509Certificate2(publicKeyCertFile, password);
return Encode(recipientCert, content);
}
public byte[] Encode(X509Certificate2 certificate, byte[] content)
{
var envelopedCms = new EnvelopedCms(new ContentInfo(content));
var recipient = new CmsRecipient(SubjectIdentifierType.IssuerAndSerialNumber, certificate, RSAEncryptionPadding.OaepSHA1);
envelopedCms.Encrypt(recipient);
return envelopedCms.Encode();
}
< /code>
envenceddata < /em> от test.txt.enc < /em> (hex кодировано): < /p>
3082039006092A864886F70D010703A08203813082037D020100318201943082019002010030783060310B300906035504061302494E310B300906035504080C024D48310D300B06035504070C0450554E453121301F060355040A0C18496E7465726E6574205769646769747320507479204C74643112301006035504030C096C6F63616C686F7374021451B1B6A5426ACE913F571FC5F11814BE46894087300D06092A864886F70D0101073000048201008045C3563B2862AFDAAFD1C709D147B11C56E653244DF01F7521DD630F86BCBBF2C0778E2FEF21352A2FC4BE4BEB885E821ADA71F24F9B684E640D2031703CF642009BB824B4EF08612A55CA0DE7454DC03B356D505A88EB7335868523AF975FB062D2542995C15A42A39C0A372F4251247FD4B2923EAB9E7E791DA542C42FB368487F0E49E0EFDC76B2863B4773490C98BA47244BF02ACEEFDD926188E481FE32BE085325F7A50CFCC96677B1695705E1D63A0BA06E6B90865B4858D328DA280C5B7D86FF62E284BA90BA4366F7AB83F0C8AFDE1503FB05A1D1DA2E043733371415BD754F263CF36A1F7D8E23C4EBF3D8352544E81C5C5C1494AE2EDB52FBFC308201DE06092A864886F70D010701301D060960864801650304012A0410A9AFB334A7074ABB58D5CFD3FFB4DE7E808201B046203B6855EB5CDA67EE41AA0688D7958312F447178108F71B55ECF612E227051D6AFA6C454375E9FAF6A9143E823A29E8C7F8912BD84224EE8A4D06D061A3F72DF681D2F19295DD7701EBE439BD849310AB7DB9B662512FCE71E22A23126A36EF062A8968220B3923226AF0BB3FA625AAFECD0F59F9D44893039EC4B8A34D39782EF8B89D90A4B25E24904872D4B751246157720FA4B38F0948D4D50F659E8B2B8B3ADA52D0E30E2B6331FCB57BE2183AB50BD290205372CE05FA9BF2DCF6547DD2806FF089F1338F4D13DFAEA1C0C19C238A7DA201B3DDE245B32CC85FCFD47C0EA222F11D7BA88455BE5CCB612197A02C16E3266A57A74441A94B18BE419480F6CE0F6AD9074EB69AFA8E7895853B538DF413113A9B2699A9D51F8C0BC01FD1F0CAB4595AE15FCE8045283DD1FD84F8E1025CD4017E63203A4C0C2D2512CA51F0511C0F6597CAD1F4CD019965BA6A2116C1C6CB5D8FA1598982D62A759BDF6FA92A9EC72A0DD91B54219ED6E2B216E94EAF570FE3135DD86464A75CAE5C04866A2D520DD2728BF98EBCEA0CA9EECB231AA60C95DDFF70C6ECDA698DC6511A712F9797F9B11C9D1D06DB0C3F0DBFC2
aes-ключ из decryptionKey.bin (кодировка шестигранника):
57BC7E022874EFB52AE41525F3E7C46FC5B3F754F8955C9398A8884527BDF678
Подробнее здесь: https://stackoverflow.com/questions/794 ... ms-content