234 messaggi dal 08 marzo 2012
Ciao,

sono riuscito a produrre l'XML richiesto per la fattura elettronica ed il formato viene convalidato.
Ora vorrei trasmetterlo tramite PEC con C# ma prima devo firmarlo.

Sto provando in tutti i modi ma non ci riesco.
Ho collegato la chiavetta USB "Carta nazionale dei servizi" e l'unico certificato che vedo è un ".cer" ma non trovo la chiave privata per convertirlo in PFX.

Come posso firmarlo se non trovo la chiave privata?
Ho anche provato a installare il certificato sul pc e ad accedere al repository via codice ma la proprietà PrivateKey è sempre null (evidentemente il cer non contiene la chiave privata).

Come posso fare per firmare l'XML da codice C#?

Grazie mille e buon anno!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

Ho collegato la chiavetta USB "Carta nazionale dei servizi" e l'unico certificato che vedo è un ".cer"

Puoi fare un elenco dei nomi dei file che si trovano all'interno?

ciao,
Moreno

Enjoy learning and just keep making
277 messaggi dal 03 ottobre 2006
Ciao, penso di avere un problema simile al tuo ma con la chiavetta di Infocert
Per la tua chiave mi avevano suggerito questo sito per esportare la chiave in pfx

https://www.ipzs.it/docs/public/cnac/Esportazione%20Certificati%20CNS.pdf

spero che a te vada meglio
Se poi riesci ad estrarlo correttamente, io sono riuscito a firmare in c# con questo codice:

CmsSigner cms = new CmsSigner(new X509Certificate2(percorso file filepfx, password));
ContentInfo ci = new ContentInfo(File.ReadAllBytes(percorso file xml));
SignedCms cmssigned = new SignedCms(ci);
cmssigned.ComputeSignature(cms);
byte[] encodedmessage = cmssigned.Encode();

File.WriteAllBytes(percorso file di uscita con estensione p7m, encodedmessage);
234 messaggi dal 08 marzo 2012
Ho provato il tuo codice ma quando chiamo "cmssigned.ComputeSignature(cms)" mi da eccezione "Chiave non esistente.".

Sai a cosa potrebbe riferirsi?
wmartin ha scritto:
Ciao, penso di avere un problema simile al tuo ma con la chiavetta di Infocert
Per la tua chiave mi avevano suggerito questo sito per esportare la chiave in pfx

https://www.ipzs.it/docs/public/cnac/Esportazione%20Certificati%20CNS.pdf

spero che a te vada meglio
Se poi riesci ad estrarlo correttamente, io sono riuscito a firmare in c# con questo codice:

CmsSigner cms = new CmsSigner(new X509Certificate2(percorso file filepfx, password));
ContentInfo ci = new ContentInfo(File.ReadAllBytes(percorso file xml));
SignedCms cmssigned = new SignedCms(ci);
cmssigned.ComputeSignature(cms);
byte[] encodedmessage = cmssigned.Encode();

File.WriteAllBytes(percorso file di uscita con estensione p7m, encodedmessage);
234 messaggi dal 08 marzo 2012
BrightSoul ha scritto:
Ciao,

Ho collegato la chiavetta USB "Carta nazionale dei servizi" e l'unico certificato che vedo è un ".cer"

Puoi fare un elenco dei nomi dei file che si trovano all'interno?

ciao,
Moreno


Tanti file exe...ma a livello di certificati vedo solo il ".cer"...mi sfugge perchè non capisco dove sia la chiave privata
234 messaggi dal 08 marzo 2012
wmartin ha scritto:
Ciao, penso di avere un problema simile al tuo ma con la chiavetta di Infocert


Perdonatemi anche la mia è la chiavetta di "infocert", nel senso che al suo interno è presente una cartella chiamata appunto "Infocert".
Dicevo carta dei servizi perchè sulla chiavetta usb, esterno c'è scritto così.

Questa per intenderci, la versione USB, è la chiavetta che ho

https://www.card.infocamere.it/infocard/pub/
Modificato da evil80 il 02 gennaio 2019 21.44 -
277 messaggi dal 03 ottobre 2006
ma al posto della scritta "percorso file filepfx" hai messo il percorso dove hai salvato il file pfx generato dall'esportazione del certificato ?
234 messaggi dal 08 marzo 2012
Be si certo. Il problema è che quel PFX contiene solo la chiave pubblica e non quella privata.
Non riesco a capire come estrarre la chiave privata dalla carta nazionale dei servizi.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.