The 1C:Enterprise developers forum

#1
People who like this: 0 Yes / 0 No
Interested
Rating: 32
Joined: Oct 27, 2011
Company: Abaco Soluciones S.A.

Hello all!

Could someone provide a useful example of how to use cryptography? For example I have some signed XML and I want to get certificate from it (public key). It has embedded PEM-encoded certificate, so I saved it to some file and tried to open it with crypto-fuctions but without luck.
The code below:

Code
   CryptoManager = New CryptoManager("", "", 1);
   CertFile = New TextReader("C:\Users\Intel\Downloads\certtest.txt");
   CertBase64String = CertFile.Read(); 
   StringFunctionsClientServer.NormalizeString(CertBase64String);
   CertBinaryData = Base64Value(CertBase64String);
   Cert = CryptoManager.GetCertificatesFromSignature(CertBinaryData);

The certificate is a valid one. I could decode DER-block from CertBinaryData in 3-rd party apps.

Please help me get certificate from pem public key. I need a certificate to validate signature.

1c-dn info does not help a lot. It sends me to MSoft CryptoAPI
And these functions does not have nothing in common with 1c ones.

 
#2
People who like this: 0 Yes / 0 No
Interested
Rating: 32
Joined: Oct 27, 2011
Company: Abaco Soluciones S.A.

NormalizeString function deletes every whitespace or CR+LF to make sure only base64 string is present.

 
#3
People who like this: 0 Yes / 0 No
Timofey Bugaevsky
Guest

Joined:
Company:

Hello, Alexey.

This is not trivial.

Try using openssl. Maybe something like this will help:

Code
openssl x509 -in full.cer -pubkey -noout | openssl enc -base64 -d > public.der

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.

/* --- ФИКС ЗАГОЛОВКОВ ДОКУМЕНТАЦИИ (BRUTE FORCE) --- */ /* Цепляемся за все возможные контейнеры Битрикса */ .content h1, #content h1, .workarea h1, .content h2, #content h2, .workarea h2, .content h3, #content h3, .workarea h3, .content h4, #content h4, .workarea h4, .content h5, #content h5, .workarea h5, .content h6, #content h6, .workarea h6 { display: block !important; font-weight: 700 !important; color: #222 !important; text-transform: none !important; margin-top: 1.5em !important; margin-bottom: 0.5em !important; line-height: 1.2 !important; } /* Явно задаем размеры, чтобы перекрыть "font-size: 100%" */ .content h1, #content h1 { font-size: 28px !important; } .content h2, #content h2 { font-size: 24px !important; } .content h3, #content h3 { font-size: 22px !important; } .content h4, #content h4 { font-size: 20px !important; } .content h5, #content h5 { font-size: 18px !important; } /* Ваш случай (5 решеток) */ .content h6, #content h6 { font-size: 16px !important; } /* Если Битрикс или редактор засунули внутрь h5 тег span или font */ .content h5 *, #content h5 *, .workarea h5 * { font-size: inherit !important; color: inherit !important; font-weight: inherit !important; } /* --- СТИЛИЗАЦИЯ ТЕКСТА (Markdown Style) --- */ /* Ссылки в тексте делаем более заметными */ .content a:not([class]) { color: #005aa0; text-decoration: none; border-bottom: 1px solid rgba(0, 90, 160, 0.2); } .content a:not([class]):hover { border-bottom-color: #005aa0; } /* Списки (чтобы не прилипали) */ .content ul, .content ol { margin-bottom: 15px !important; padding-left: 20px !important; } .content li { margin-bottom: 5px !important; }