Generate Pgp Key Command Line

  1. Generate Pgp Key Command Line Code
  2. Create Pgp Key Command Line

This article describes how to create and manage PGP Keys using PGP Command Line 8.x/9.x. This includes generating key pairs, importing and exporting keys, and sending keys to keyservers. In the previous article, we discussed how to install GPG.After the installation of GPG, the very next step is to generate a private-public key pair. GPG can be used as a command-line tool. Using various command-line options, one can generate a keypair and do encryption, decryption, and signing. If this command is given twice, the fingerprints of all secondary keys are listed too. List only the sequence of packets. This is mainly useful for debugging. Generate a new key pair. This command is normally only used interactive. There is an experimental feature which allows to create keys.

Previous: The quick key manipulation interface, Up: Unattended Usage of GPG [Contents][Index]

This pertains to Windows NT4/2000/XP, Linux, and Unix platforms. If you have PGP Desktop installed on the same Windows computer as the PGP Command Line, and you installed PGP Desktop to the default directory, then PGP Command Line will automatically locate and use your existing keyrings. Apr 08, 2005  GNU gpg is encryption and signing tool. Adblock detected 😱 My website is made possible by displaying online advertisements to my visitors. Ads are annoying but they help keep this website running. It is hard to keep the site running and producing new content when so many people block ads. Please consider Continue reading 'Linux create your own GnuPG private and public key'. Generating PGP Keys This article will guide you through the process of generating public and private keys for encrypting emails. This is for people using command line (unix) mail readers such as Mutt as well as those who use Linux workstations.

4.5.4 Unattended key generation

The command --generate-key may be used along with the option--batch for unattended key generation. This is the mostflexible way of generating keys, but it is also the most complex one.Consider using the quick key manipulation interface described in theprevious subsection “The quick key manipulation interface”.

The parameters for the key are either read from stdin or given as afile on the command line. The format of the parameter file is asfollows:

  • Text only, line length is limited to about 1000 characters.
  • UTF-8 encoding must be used to specify non-ASCII characters.
  • Empty lines are ignored.
  • Leading and trailing white space is ignored.
  • A hash sign as the first non white space character indicates a comment line.
  • Control statements are indicated by a leading percent sign, the arguments are separated by white space from the keyword.
  • Parameters are specified by a keyword, followed by a colon. Arguments are separated by white space.
  • The first parameter must be ‘Key-Type’; control statements may be placed anywhere.
  • The order of the parameters does not matter except for ‘Key-Type’ which must be the first parameter. The parameters are only used for the generated keyblock (primary and subkeys); parameters from previous sets are not used. Some syntactically checks may be performed.
  • Key generation takes place when either the end of the parameter file is reached, the next ‘Key-Type’ parameter is encountered or at the control statement ‘%commit’ is encountered.

Control statements:

%echo text

Print text as diagnostic.

%dry-run

Suppress actual key generation (useful for syntax checking).

%commit

Perform the key generation. Note that an implicit commit is done atthe next Key-Type parameter.

%pubring filename

Do not write the key to the default or commandline given keyring butto filename. This must be given before the first commit to takeplace, duplicate specification of the same filename is ignored, thelast filename before a commit is used. The filename is used until anew filename is used (at commit points) and all keys are written tothat file. If a new filename is given, this file is created (andoverwrites an existing one).

See the previous subsection “Ephemeral home directories” for a morerobust way to contain side-effects.

%secring filename

This option is a no-op for GnuPG 2.1 and later.

See the previous subsection “Ephemeral home directories”.

%ask-passphrase
%no-ask-passphrase

This option is a no-op for GnuPG 2.1 and later.

%no-protection

Using this option allows the creation of keys without any passphraseprotection. This option is mainly intended for regression tests.

%transient-key

facebook messenger for android gingerbread free download If given the keys are created using a faster and a somewhat lesssecure random number generator. This option may be used for keyswhich are only used for a short time and do not require fullcryptographic strength. Openvpn generate keys for second connectino. It takes only effect if used together withthe control statement ‘%no-protection’.

General Parameters:

Key-Type: algo

Starts a new parameter block by giving the type of the primarykey. The algorithm must be capable of signing. This is a requiredparameter. algo may either be an OpenPGP algorithm number or astring with the algorithm name. The special value ‘default’ maybe used for algo to create the default key type; in this case a‘Key-Usage’ shall not be given and ‘default’ also be usedfor ‘Subkey-Type’.

Generate Pgp Key Command Line Code

Key-Length: nbits

The requested length of the generated key in bits. The default isreturned by running the command ‘gpg --gpgconf-list’.

Key-Grip: hexstring

This is optional and used to generate a CSR or certificate for analready existing key. Key-Length will be ignored when given.

Key-Usage: usage-list

Space or comma delimited list of key usages. Allowed values are‘encrypt’, ‘sign’, and ‘auth’. This is used togenerate the key flags. Please make sure that the algorithm iscapable of this usage. Note that OpenPGP requires that all primarykeys are capable of certification, so no matter what usage is givenhere, the ‘cert’ flag will be on. If no ‘Key-Usage’ isspecified and the ‘Key-Type’ is not ‘default’, all allowedusages for that particular algorithm are used; if it is not given but‘default’ is used the usage will be ‘sign’.

Subkey-Type: algo

This generates a secondary key (subkey). Currently only one subkeycan be handled. See also ‘Key-Type’ above.

Subkey-Length: nbits

Length of the secondary key (subkey) in bits. The default is returnedby running the command ‘gpg --gpgconf-list’.

Subkey-Usage: usage-list

Key usage lists for a subkey; similar to ‘Key-Usage’.

Passphrase: string

If you want to specify a passphrase for the secret key, enter it here.Default is to use the Pinentry dialog to ask for a passphrase.

Name-Real: name
Name-Comment: comment
Name-Email: email

Create Pgp Key Command Line

The three parts of a user name. Remember to use UTF-8 encoding here.If you don’t give any of them, no user ID is created.

Expire-Date: iso-date (number[d w m y])

Set the expiration date for the key (and the subkey). It may eitherbe entered in ISO date format (e.g. '20000815T145012') or as number ofdays, weeks, month or years after the creation date. The specialnotation 'seconds=N' is also allowed to specify a number of secondssince creation. Without a letter days are assumed. Note that thereis no check done on the overflow of the type used by OpenPGP fortimestamps. Thus you better make sure that the given value makesense. Although OpenPGP works with time intervals, GnuPG uses anabsolute value internally and thus the last year we can represent is2105.

Creation-Date: iso-date

Set the creation date of the key as stored in the key information andwhich is also part of the fingerprint calculation. Either a date like'1986-04-26' or a full timestamp like '19860426T042640' may be used.The time is considered to be UTC. The special notation 'seconds=N'may be used to directly specify a the number of seconds since Epoch(Unix time). If it is not given the current time is used.

Preferences: string

Set the cipher, hash, and compression preference values for this key.This expects the same type of string as the sub-command ‘setpref’in the --edit-key menu.

Revoker: algo:fpr [sensitive]

Add a designated revoker to the generated key. Algo is the public keyalgorithm of the designated revoker (i.e. RSA=1, DSA=17, etc.)fpr is the fingerprint of the designated revoker. The optional‘sensitive’ flag marks the designated revoker as sensitiveinformation. Only v4 keys may be designated revokers.

Keyserver: string

This is an optional parameter that specifies the preferred keyserverURL for the key.

Handle: string

This is an optional parameter only used with the status linesKEY_CREATED and KEY_NOT_CREATED. string may be up to 100characters and should not contain spaces. It is useful for batch keygeneration to associate a key parameter block with a status line.

Here is an example on how to create a key in an ephemeral home directory:

If you want to create a key with the default algorithms you would usethese parameters:

Previous: The quick key manipulation interface, Up: Unattended Usage of GPG [Contents][Index]

Table of Contents
Generating a new keypair
Exchanging keys
Encrypting and decrypting documents
Making and verifying signatures

GnuPG is a tool for secure communication.This chapter is a quick-start guide that covers the core functionalityof GnuPG.This includes keypair creation, exchanging and verifying keys, encryptingand decrypting documents, and authenticating documents with digitalsignatures.It does not explain in detail the concepts behind public-key cryptography,encryption, and digital signatures.This is covered in Chapter 2.It also does not explain how to use GnuPG wisely.This is covered in Chapters 3 and 4.

GnuPG uses public-key cryptography so that users may communicate securely.In a public-key system, each user has a pair of keys consisting ofa private key and a public key.A user's private key is kept secret; it need never be revealed.The public key may be given to anyone with whom the user wants tocommunicate.GnuPG uses a somewhat more sophisticated scheme in which a user hasa primary keypair and then zero or more additional subordinate keypairs.The primary and subordinate keypairs are bundled to facilitate keymanagement and the bundle can often be considered simply as one keypair.

The command-line option --gen-keyis used to create a new primary keypair.GnuPG is able to create several different types of keypairs, but a primarykey must be capable of making signatures.There are therefore only three options.Option 1 actually creates two keypairs.A DSA keypair is the primary keypair usable only for making signatures.An ElGamal subordinate keypair is also created for encryption. Option 2 is similar but creates only a DSA keypair.Option 4[1] creates a single ElGamal keypair usable for both making signatures and performing encryption.In all cases it is possible to later add additional subkeys for encryptionand signing.For most users the default option is fine.

You must also choose a key size.The size of a DSA key must be between 512 and 1024 bits, and an ElGamalkey may be of any size.GnuPG, however, requires that keys be no smaller than 768 bits.Therefore, if Option 1 was chosen and you choose a keysize larger than1024 bits, the ElGamal key will have the requested size, but the DSAkey will be 1024 bits.The longer the key the more secure it is against brute-force attacks,but for almost all purposes the default keysize is adequate sinceit would be cheaper to circumvent the encryption than try to break it.Also, encryption and decryption will be slower as thekey size is increased, and a larger keysize may affect signature length.Once selected, the keysize can never be changed.

Finally, you must choose an expiration date.If Option 1 was chosen, the expiration date will be used for both theElGamal and DSA keypairs.For most users a key that does not expire is adequate.The expiration time should be chosen with care, however,since although it is possible to change the expiration date after the keyis created, it may be difficult to communicate a changeto users who have your public key.

You must provide a user ID in addition to the key parameters.The user ID is used to associate the key being created with a realperson.Only one user ID is created when a key is created, but it is possibleto create additional user IDs if you want to use the key in two ormore contexts, e.g., as an employee at work and a political activiston the side.A user ID should be created carefully since it cannot be edited afterit is created.

GnuPG needs a passphrase to protect the primary and subordinate private keys that you keep in your possession.There is no limit on the length of a passphrase, and it should becarefully chosen.From the perspective of security, the passphrase to unlock the privatekey is one of the weakest points in GnuPG (and other public-key encryption systems as well) since it is the only protection you have if another individual gets your private key.Ideally, the passphrase should not use words from a dictionary andshould mix the case of alphabetic characters as well as use non-alphabetic characters.A good passphrase is crucial to the secure use of GnuPG.

Generating a revocation certificate

After your keypair is created you should immediately generate a revocationcertificate for the primary public key using the option--gen-revoke.If you forget your passphrase or if your private key is compromised or lost, this revocation certificate may be published to notify othersthat the public key should no longer be used.A revoked public key can still be used to verify signatures madeby you in the past, but it cannot be used to encrypt future messagesto you.It also does not affect your ability to decrypt messages sent toyou in the past if you still do have access to the private key.The argument mykey must be a keyspecifier,either the key ID of your primary keypair or any part of a user IDthat identifies your keypair.The generated certificate will be left in the filerevoke.asc.If the --output option is omitted, the result will be placed on standard output.Since the certificate is short, you may wish to print a hardcopy ofthe certificate to store somewhere safe such as your safe deposit box.The certificate should not be stored where others can access it sinceanybody can publish the revocation certificate and render thecorresponding public key useless.

Notes

[1]

Option 3 is to generate an ElGamal keypair that isnot usable for making signatures.

PrevHomeNextThe GNU Privacy HandbookExchanging keys