grim/josetool
Clone
Summary
Browse
Changes
Graph
Update the docs
draft
2017-02-08, Gary Kramlich
987cf4ed2d05
Update the docs
package
main
import
(
"fmt"
"crypto/rand"
"crypto/rsa"
)
var
(
rsaCmd
=
app
.
Command
(
"rsa"
,
"generate an rsa key"
)
rsaAlgorithm
=
rsaCmd
.
Flag
(
"algorithm"
,
"the algorithm to use"
).
Short
(
'a'
).
Default
(
"RS256"
).
Enum
(
"RS256"
,
"RS384"
,
"RS512"
)
rsaKid
=
rsaCmd
.
Flag
(
"key-id"
,
"the key id to use"
).
Short
(
'i'
).
String
()
rsaUse
=
rsaCmd
.
Flag
(
"use"
,
"how this key will be used"
).
Short
(
'u'
).
Default
(
"sig"
).
Enum
(
"sig"
,
"enc"
)
rsaFilename
=
rsaCmd
.
Flag
(
"filename"
,
"the base filename to output the key to"
).
Short
(
'f'
).
Default
(
"-"
).
String
()
rsaBits
=
rsaCmd
.
Arg
(
"bits"
,
"the number of bits for the key"
).
Default
(
"2048"
).
Int
()
)
func
genRSA
()
error
{
fmt
.
Printf
(
"generating RSA key, this may take some time...\n"
)
priv
,
err
:=
rsa
.
GenerateKey
(
rand
.
Reader
,
*
rsaBits
)
if
err
!=
nil
{
return
err
}
return
output
(
priv
,
priv
.
Public
(),
*
rsaFilename
,
*
rsaKid
,
*
rsaAlgorithm
,
*
rsaUse
,
)
}