Erlang 21 - 3. Engine Load

3 इंजन लोड




erlang

3 इंजन लोड

यह अध्याय क्रिप्टो एप्लिकेशन में एन्क्रिप्शन इंजन लोड करने के लिए समर्थन का वर्णन करता है।

3.1 पृष्ठभूमि

ओपनएसएसएल एक इंजन एपीआई को उजागर करता है, जो ओपनएसएसएल द्वारा कार्यान्वित कुछ या सभी क्रिप्टोग्राफ़िक कार्यों के लिए वैकल्पिक कार्यान्वयन में प्लग करना संभव बनाता है। जब उचित रूप से कॉन्फ़िगर किया जाता है, तो OpenSSL अपने स्वयं के बजाय इन कार्यों के इंजन के कार्यान्वयन को कॉल करता है।

आमतौर पर, ओपनएसएसएल इंजन विशिष्ट क्रिप्टोग्राफिक संचालन का एक हार्डवेयर कार्यान्वयन प्रदान करते हैं। हार्डवेयर कार्यान्वयन आमतौर पर अपने सॉफ़्टवेयर-आधारित समकक्ष पर बेहतर प्रदर्शन प्रदान करता है, जिसे क्रिप्टोग्राफ़िक त्वरण के रूप में जाना जाता है।

3.2 मामलों का उपयोग करें

डिफ़ॉल्ट निर्देशिका से डायनामिक रूप से एक इंजन लोड करें

यदि इंजन OpenSSL / LibreSSL स्थापना engines निर्देशिका में स्थित है।

1> {ok, Engine} = crypto:engine_load(<<"otp_test_engine">>, [], []).
 {ok, #Ref}
ध्यान दें

इंजन डायनामिक लाइब्रेरी पर फ़ाइल नाम की आवश्यकता SSL संस्करणों के बीच भिन्न हो सकती है।

डायनेमिक इंजन के साथ एक इंजन लोड करें

लाइब्रेरी को रास्ता देकर डायनामिक इंजन की मदद से इंजन लोड करें।

2> {ok, Engine} = crypto:engine_load(<<"dynamic">>,
                                     [{<<"SO_PATH">>,
                                       <<"/some/path/otp_test_engine.so">>},
                                      {<<"ID">>, <<"MD5">>},
                                      <<"LOAD">>],
                                     []).
{ok, #Ref}
ध्यान दें

लिबरेएसएसएल में संस्करण 2.2.1 से डायनामिक इंजन का समर्थन नहीं किया गया है

एक इंजन लोड करें और कुछ तरीकों को बदलें

डायनामिक इंजन की मदद से एक इंजन को लोड करें और बस कुछ इंजन विधियों को बदलें।

 3> Methods = crypto:engine_get_all_methods() -- [engine_method_dh,engine_method_rand,
engine_method_ciphers,engine_method_digests, engine_method_store,
engine_method_pkey_meths, engine_method_pkey_asn1_meths].
[engine_method_rsa,engine_method_dsa,
 engine_method_ecdh,engine_method_ecdsa]
 4> {ok, Engine} = crypto:engine_load(<<"dynamic">>,
                                      [{<<"SO_PATH">>,
                                        <<"/some/path/otp_test_engine.so">>},
                                       {<<"ID">>, <<"MD5">>},
                                       <<"LOAD">>],
                                      [],
		                      Methods).
 {ok, #Ref}

वर्तमान में लोड किए गए सभी इंजनों की सूची बनाएं

 5> crypto:engine_list().
[<<"dynamic">>, <<"MD5">>]