Comments (3)
TLS проверил только односторонний. CMS подписывается sha256 и проверяется на sha-1 и sha256. С виндой совместимо (проверка проходит).
В качестве подписи провайдер возвращает в сыром виде (r||t)
. Для этого используем флаг CP_ECC_PLAIN_SIGNATURE_CNG_REVERSED
после чего разворачиваем подпись.
ASN1 в cms формируется руками, по аналогии реализации от ms.
from corefx.
Для формирования cms подписи нужно явно передать закрытый ключ, так как свойство PrivateKey
не поддерживается для EcDsa (по изначальной логике ms).
using (var ecDsaCert = ... ) //X509Certificate2
{
var key = ecDsaCert.GetECDsaPrivateKey();
var contentInfo = new ContentInfo(bytesToHash);
var signedCms = new SignedCms(contentInfo, false);
// Явно указываем закрытый ключ
CmsSigner cmsSigner = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, ecDsaCert, key);
cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
signedCms.ComputeSignature(cmsSigner);
signature = signedCms.Encode();
Console.WriteLine($"CMS Sign: {Convert.ToBase64String(signature)}");
}
from corefx.
Создание нового ключа не поддерживаем (пустой конструктор и создание ключа через CspParams
). Если будет нужно - сделаем потом отдельно.
from corefx.
Related Issues (20)
- Вернуть методы работы с контейнерами в Gost_XXXX_CSP HOT 2
- Создание и проверка подписи CAdES BES, CAdES X Long Type 1 на линуксе используя .net core HOT 1
- Кириллица в CN при создании сертификатов HOT 4
- Зачем патчить рантайм? HOT 1
- Gost ICryptoTransform не использет дубликат ключа. HOT 1
- Проблема с определением типа KeyWrap для 12 госта (unix)
- Сборка не работает на Windows Server + IIS HOT 2
- ошибка проверки открепленной подписи HOT 2
- Сломался Gost EnvelopedCMS на win, не работал на Linux HOT 13
- Неправильно работает AsnEncodedData.Format на Linux HOT 2
- Избавиться от createdump в self-contained сборках на Linux HOT 2
- Версионность 3.1.30 HOT 6
- Кириллица в именах контейнеров (+cms) HOT 17
- 3.1.31 SignedXml.ComputeSignature CryptographicException: Failed to create signing key HOT 4
- [Вопрос] .NET Core 3.1 will reach End of Support on December 13, 2022 HOT 5
- EnvelopedCms на Linux (?) возможно помещает данные signedCms в дополнительный OCTET STRING HOT 12
- net7 и обновление версионности HOT 3
- Ограниченная поддежка RSA
- DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection? extraStore) should throw AggregateException
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from corefx.