用途:
dsa命令用于处理DSA密钥、格式转换和打印信息。该命令兼容了传统的SSLeay来用私钥进行加密:新的应用程序必须使用安全的PKCS#8格式。
用法:
openssl dsa [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] [-passin arg]
[-passout arg] [-text] [-noout] [-modulus] [-pubin] [-pubout] [-engine id] [-des] [-des3] [-idea]
选项说明:
-inform PEM|DER:输入文件格式,DER或者PEM格式。DER选项包含一个私钥值,它使用ASN1 DERD格式编码的ASN.1 SEQUENCE(它是由版本值(目前为0),p,q,g,公钥或私钥组件)。当用一个公钥值时就是使用一个SubjectPublicKeyInfo结构(如果密钥不是dsa格式,则将会发生错误)。默认的是PEM格式,就是base64编码格式。
-outform DER|PEM:输出文件格式,DER或者PEM格式,和-inform众的格式意义一样。
-in filename:输入的DSA密钥文件,默认为标准输入,如果密钥是被加密了的,会提示输入口令。
-out filename:DSA密钥输出文件,默认为标准输出。如果设置了任何加密选项,会提示输入口令。输出文件必须和输入文件不一样。
-passin arg:指定私钥包含口令存放方式。比如用户将私钥的保护口令写入一个文件,采用此选项指定此文件,可以免去用户输入口令的操作。比如用户将口令写入文件“pwd.txt”,输入的参数为:-passin file:pwd.txt。
-passout arg:输出文件口令保护存放方式。
-text:打印公钥、私钥组件信息和参数信息值。
-noout:不打印密钥的编码版本信息。
-modulus:打印密钥中的公钥组件信息。
-pubin:设置此选项后,从输入文件中读取公钥值,默认读取的是私钥值。
-pubout:设置此选项后,保存公钥值到输出文件中,默认的是保存私钥值到输出文件中。如果输出的是公钥,则它会自动的设置。
-engine id:指定引擎。
-des ,-des3, -idea, -aes128, -aes192, -aes256,-camellia128, -camellia192, -camellia256:指定的私钥保护加密算法。会提示输入口令。如果没有指定其中的一种,则密钥用简单的文本形式写出。
注意:
PEM私钥格式用下面的头部和底部:
-----BEGIN DSA PRIVATE KEY-----
-----END DSA PRIVATE KEY-----
PEM公钥格式用下面的头部和底部:
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
实例:
移除DSA私钥文件中的保护口令:
openssl dsa -in key.pem -out keyout.pem
用3DES算法加密一个私钥文件:
openssl dsa -in key.pem -des3 -out keyout.pem
生成dsa参数文件:
openssl dsaparam -out dsaparam.pem 102
根据dsa参数文件生成dsa密钥:
openssl gendsa -out dsakey.pem dsaparam.pem
将PME密钥转换为DER密钥:
openssl dsa -in dsakey.pem -outform DER -out dsakeyder.pem
打印公钥信息:
openssl dsa -in dsakey.pem –modulus
打印所有信息:
openssl dsa -in dsakey.pem –text
将dsa密钥加密存放:
openssl dsa -in dsakey.pem -des -out enckey.pem