जवाबों:
pkeyutl -signRSA कुंजी के साथ (और rsa_padding_modeडिफ़ॉल्ट रूप से pkcs1जिसका अर्थ विशेष रूप से pkcs1-v1_5 है) और -pkeyopt digest:$hashrfc3447 के खंड 9.2 में EMSA-PKCS1-v1_5-ENCODE के 2-6 चरणों को करता है, फिर धारा 8.2 में RSASSA-PKCS1-v1_5-SIGN के चरण 2 को भरें। दूसरे शब्दों में, यह सब कुछ करता है लेकिन हैश डेटा (लेकिन यह इनपुट हैश की लंबाई की जांच करता है )। ध्यान दें कि यदि आपके द्वारा निर्दिष्ट हैश नाम आपके द्वारा उपयोग किए गए हैश से भिन्न है, तो परिणामस्वरूप हस्ताक्षर सही तरीके से सत्यापित नहीं होंगे।
rsautl -sign(इसी तरह से डिफ़ॉल्ट) केवल 4-6 और स्टेप 2 करता है। दूसरे शब्दों में, यह ASN.1 को एल्गोरिथ्म एडिटर को कच्चे हैश में एन्कोडिंग में नहीं जोड़ता है, इसलिए आपको यह करने की आवश्यकता है कि यदि आप चाहते हैं कि आपके हस्ताक्षर समझे जाएं और स्वीकार किए जाएं। दूसरों के द्वारा। pkeyutl -signबिना -pkeyopt digestभी ASN.1 एन्कोडिंग को छोड़ देता है।
पूर्णता के लिए, dgst -$hash -signया $hash -signRSA कुंजी के साथ इसका संक्षिप्त रूप संपूर्ण कार्य करता है: हैश, ASN.1 सांकेतिक शब्दों में बदलना, पैड 01FF..00, और मोडएक्सपी।