Newsgroup: it.comp.sicurezza.crittografia
Titolo: CAPICOM e crittografia file ZIP

un saluto a tutti e un ringraziamento a chi mi saprą essere d'aiuto.
sto sviluppando un progetto in C# nel quale ricevo come allegato della
mail una file firmato e cifrato del tipo nomefile.zip.p7s.p7m , di
questo file devo decifrarlo(p7m), verificarne la firma(p7s) ed
estrarre il contenuto(zip).
con la libreria CAPICOM sono riuscito a fare + o - quello che volevo,
riproducendo anche il percorso inverso, ovvero firma + cifratura.
purtroppo la cosa non funziona per i file ZIP, ma funzione bene ad
esempio per i TXT
credo che il problema sia per l'encoding o qualcosa del genere, ho
provato a cambiare tutto il "cambiabile" ma non sono arrivato a capo
di nulla.
qualcuno sa darmi un aiuto o sa dove lo posso trovare?
in definitiva vorrei far funzionare la cosa su qualunque tipo di file.
grazie per l'aiuto
ciao a tutti

 nomefile.zip.p7s.p7m
Premetto che non so niente di librerie di windows e del loro uso, quello
che dico, quindi, vuole solo essere uno "spunto", visto anche che
nessun'altro per ora ti ha risposto...
I primi due "passaggi" che dici di voler togliere sono, diciamo, degli
"stadi" che hanno un solo ingresso e una sola uscita.
Un file ZIP ha generalmente MOLTI file al suo interno, quindi per questo
dubito che possa esistere una libreria che ti faccia vedere un file ZIP
come un "filtro" di uno stream o robe così... (cosa che, invece, è
diversa per formati come ad esempio il gzip o il bzip2, che agiscono su
un solo stream e sono generalmente gestiti ni tal modo)
A parte questo mini-spunto, ripeto che non so quasi niente di
programmazione di windows, e tanto meno di CAPICOM...
    Lapo
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iEYEARECAAYFAkJkpfQACgkQaJiCLMjyUvtJ/ACdEAGHY6MCUke7ED9vF/PsItRN
5RsAn0Kg97A1kjX6hXKTaWf8cRbLbZk2
=mF+e
-----END PGP SIGNATURE-----

 programmazione di windows, e tanto meno di CAPICOM...
Ti ringrazio per la risposta.
Sono riuscito proprio oggi a risolvere il problema, che era proprio
dato dall'encoding con cui leggevo i file.
Ho provato i vari encoding messi a disposizione dal framework, ma
nessuno andava bene per ogni casistica; alla fine l'encoding da
utilizzare non era fra quelli presenti, bensì uno da richiamare
tramite il suo codpage 1252.
Apprezzo comunque molto il tuo aiuto.
Saluti

 tramite il suo codpage 1252.
CP1252, aka Windows1252, quasi identico a ISO-8859-1, non era presente
nella lista?
Mi pare *assurdo* dato che è l'encoding usato di default da tutti i
Windows dell'europa occidentale...
Inoltre cosa c'entra l'encoding, concetto associato ai file di testo, ai
file zip?
Va beh, se hai risolto, tanto meglio.. ^_^
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iEYEARECAAYFAkJmGZAACgkQaJiCLMjyUvv8tQCg1RNtyQTy7+JC28EQ/3Q/6dkS
VZAAoNjyoORPmWcxIuhVZy2jg/brikAh
=aim7
-----END PGP SIGNATURE-----

 Va beh, se hai risolto, tanto meglio.. ^_^
Già.... :-))

 file poco importa che sia testo o binario.
Importa importa perché una codepage è un concetto che c'entra con la
"semantica", su come "interpretare" dei bit per capire quale "lettera
significano".
Nei file binari ogni byte è un byte e nno "significa" niente.
O meglio qualcosa significherà pure, ma è all'applicazione (al prossimo
"livello") di interpretare il contenuto, un file binario deve essere
lasciato "intoccato" per definizione.
Quindi no, un "problema di codepage" non deve (non dico che non può,
probabilmente è un bug o tuo o dell'API, ma sicuramente non deve)
interferire in alcun modo con la lettura di un file ZIP o comunque un
qualsiasi formato "binario" che non deve essere interpretato...
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iEYEARECAAYFAkJoFZgACgkQaJiCLMjyUvvXHACfS2ZbTXt0H/naeqxrtVKAUV+n
uSkAni6bxbfTdGx/93pli1NXjMBN6Mpl
=cOqA
-----END PGP SIGNATURE-----

 qualsiasi formato "binario" che non deve essere interpretato...
Ho fatto questa prova: leggo il file byte per byte, utilizzando
encoding differenti, e poi lo riscrivo in un'altra posizione.
Il file ZIP è valido dopo la riscrittura solo se utilizzo l'encoding
1252 per leggerlo e scriverlo.

 -----BEGIN PGP SIGNED MESSAGE-----
Comunque la codifica 1252 è presente nel framework con il nome di Encoding.Default
Stupidamente non l'avevo neanche presa in considerazione.
;-P

 1252 per leggerlo e scriverlo.
Chiaro che se usi lo setsso encoding SIA per leggere CHE per scrivere
diciamo che ci sono delle "probabilità" di ri-ottenere il file originale.
Ma è come cercare di leggere il tedesco "come se fosse italiano" e poi
riscriverlo "come se fosse italiano": non è neanche detto che sia possibile.
Per dirne una 0xFF01FFFF in UTF-8 non significa niente, quindi se leggi
in UTF-8 un file binario che contiene quella parola ottieni un errore di
decodifica, o più probabilmente il byte viene saltato; in fase di
scrittura ottieni qualcosa di non valido.
Altro esempio: il byte 0x00 non significa "niente" nella maggior parte
delle codifiche testuali.
Non conosco le CAPICOM ma ti consiglio di verificare BENE se esiste
un'opzione "nessuna codifica", "contenuto binario", "non convertire" o
qualcosa del genere...
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - 
http://enigmail.mozdev.org
iEYEARECAAYFAkJpVHIACgkQaJiCLMjyUvspDgCeLlwTrXAtGxj1Z1yGZbc8l046
DPMAoLz/IMQCY7QeRLWAm2iPHb6QsRoN
=BXTo
-----END PGP SIGNATURE-----

 qualcosa del genere...
La capicom lavora con stringhe di caratteri, quindi quando devo
firmare digitalmente un file lo leggo e glielo passo come stringa.
La capicom ne calcola l'hash e mi restituisce una stringa, che io vado
a scrivere in un nuovo file ".P7S"
Il processo inverso è identico, ma il tutto funziona solo con la
codifica 1252 per leggere e scrivere i file, altrimenti ottengo
(tranne che per i TXT) file illeggibili.

perchè tutti questi problemi?
col mio sistema puoi cifrare  gli zip e qualsiasi altra cosa, spedirli per 
posta  e chi li riceve li decritta tranquillamente ciao 
(
www.chiuditisesamo.it
)
--
Questo articolo e` stato inviato da 
http://www.undergroundsecurity.net
Segnala gli abusi ad 
ab...@undergroundsecurity.net