PopratneFunkcije.Potpisivanje.DohvatiCertifikat - da prihvaća byte[] kao parametar ?

Dec 5, 2012 at 12:50 PM

Moža ne bi bilo loše da postoji i treći naćin dohvaćanja certifikata gdje će funkcija primati byte[] umjesto file-a jer postoji mogućnost da bi se certifikat čuvao u bazi.

Ne znam koliko je to ispravno ali ako se može nalaziti na disku kao file, zašto ga ne bi upisali u bazi i učitalo kao byte array. Time korisnici niti ne vide file, a ne treba im se ništa posebno podešavati i/ili presnimavati file na disk.

Coordinator
Dec 5, 2012 at 2:17 PM
Edited Dec 5, 2012 at 2:22 PM

S ovim ćeš imati problem.. jer sa byte arrayom moraš eksportirati i transportirati private key.. a tu nastaju problemi...

Zna se desiti da uredno spremiš u bazu pfx, ali kad treba potpisati nešto njime - banana.. HasPrivateKey property bude false.. i onda milion kvaka22 na n-tu potenciju... 

A s druge strane - što ako ti pukne veza do baze u kojoj držiš pfx, a na klijentu moraš generirati ZKI tim istim private keyem? - banana...

Dec 5, 2012 at 5:32 PM

hmm ako ne funkcionira to da sa njim ne mogu potpisati onda je banana iako sam probao u testnom okruzenju i sve mi je radilo, a da li će biti u realase neke druge kontrole onda je problem ali kako znati prije produkcije ?

A sa druge strane ako mi pukne veza onda niti nemogu izdati račun sa ZKI-em jer ntit ga ne mogu upisati u bazu da bi ga izdao. Znaci u slučaju da nemam baze idu paragon blokovi.

Coordinator
Dec 5, 2012 at 7:29 PM

Ako je tako, a pod uvjetom da ti zbilja radi potpis u test okruzenju, nema razloga da ne radi ovaj nacin i ideja nije losa.. Ali to ne mora biti implementirano u dll, već to sam možeš ovako:

<DataContract()>
Public Class CertDLL
	<DataMember()>
 Public Property CertDLL As Byte()
	<DataMember()>
 Public Property P As String
	<DataMember()>
 Public Property ERR As String
End Class
Public Function GetCert() As CertDLL Implements Icis_komunikator.GetCert
		Dim ret As New CertDLL

		Try
			Dim cert As X509Certificates.X509Certificate2 =
						Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(My.Settings.FISKAL_CERT_NAZIV,
																								 X509Certificates.StoreLocation.LocalMachine,
																								 X509Certificates.StoreName.My)

			ret.CertDLL = cert.Export(X509Certificates.X509ContentType.Pfx, "secret")
			ret.P = EncryptData("secret")

		Catch ex As Exception
			ret.ERR = ex.Message
		End Try

		Return ret

	End Function

Dec 5, 2012 at 9:39 PM

što je taj Dim?

:)

Coordinator
Dec 5, 2012 at 10:43 PM
Edited Dec 5, 2012 at 10:44 PM
mladenbabic wrote:

što je taj Dim?

:)

isto što i 

X509Certificates.X509Certificate2 cert = ...

 

Imao sam neke primjere koda u VB.net.. shvatit će poantu :))