Page 1 of 1
Importing .p12 files
Posted: Wed 05 Jun 2013 09:02
by anders_g
Hi, I am trying to replace my CAPICOM handling of certificates with SecureBridge. Seemed promising, but now i tried importing a .p12 file with code like this:
var
crt: TScCertificate;
crt := TScCertificate.Create(<TScCryptoAPIStorage>.Certificates);
crt.ImportFrom(<FileName>, <Pwd>);
This doesn't work as the import doesn't seem to find anything in the file, especially not the CertName.
However, after importing the cert from e g InternetExplorer, I can handle it with help of SecureBridge: list, use, delete...
Am I missing something, or is it just impossible to open .p12 certs? Is there a way to circumvent the problem?
/Anders
Re: Importing .p12 files
Posted: Wed 26 Jun 2013 06:46
by anders_g
Support obviously died, went on vaccation or something, no answer to anything during the whole of June...
/Anders
Re: Importing .p12 files
Posted: Thu 27 Jun 2013 11:25
by Dimon
Please give more detailed description of the problem. Is there an exception raised? If yes, specify the exact exception message.
Re: Importing .p12 files
Posted: Thu 27 Jun 2013 15:28
by anders_g
I thought maybe .p12 was not able to be opened, as that filetype is not in the list of values?
The error I get is:
"<my project> raised exception class EScError with message 'Certificate name missing'."
This is what I see:
* ScBridge.pas 6350: After setting value to CertData, the string is totally unreadable, thus the 2 following searches for 'CERTIFICATE' and 'X509 CERTIFICATE' fail => CertStr is empty.
* ScBridge.pas 6367: the call to BaseStorage.ImportCert seems to work => ce has a value.
* ScBridge.pas 6407: CertName is empty => no CertificateList.Storage.Save(Self)!
I see now, that the error really shows up on a line I didn't show you. This is my - fuller - code:
var
crt: TScCertificate;
begin
crt := TScCertificate.Create(CryptoStorage.Certificates);
crt.ImportFrom(AFileName, APwd);
CryptoStorage.Certificates.Add(crt); // << This is where I get the error!
end;
I thought maybe importing did the whole thing, but removing third line and reloading the repository doesn't seem to help.
Hopefully this was clearer?
/Anders
Re: Importing .p12 files
Posted: Mon 08 Jul 2013 09:21
by Dimon
You should set the certificate name before saving the certificate into the certificate storage. You can use the following code:
Code: Select all
crt := TScCertificate.Create(CryptoStorage.Certificates);
crt.ImportFrom(AFileName, APwd);
crt.CertName := 'my_cert';
CryptoStorage.Certificates.Add(crt);
Re: Importing .p12 files
Posted: Fri 12 Jul 2013 06:38
by anders_g
Thanks, that seems to work fine
... with the exception that the last line (CryptoStorage.Certificates.Add(crt);
) should be removed. Setting the CertName already adds the cert to the list, and the Add just causes a "duplicate name" error!
/Anders