grim/josetool
Clone
Summary
Browse
Changes
Graph
Add the kid if it's set
draft
default
tip
2017-02-08, Gary Kramlich
4ac5360b9a6a
Add the kid if it's set
package
main
import
(
"crypto"
"fmt"
"io/ioutil"
"github.com/mendsley/gojwk"
)
func
outputPrivate
(
key
crypto
.
PrivateKey
,
filename
,
kid
,
algorithm
,
use
string
)
error
{
jwkPriv
,
err
:=
gojwk
.
PrivateKey
(
key
)
if
err
!=
nil
{
return
err
}
jwkPriv
.
Kid
=
kid
jwkPriv
.
Alg
=
algorithm
jwkPriv
.
Use
=
use
jsonPriv
,
err
:=
gojwk
.
Marshal
(
jwkPriv
)
if
err
!=
nil
{
return
err
}
if
filename
==
"-"
{
fmt
.
Printf
(
"----- begin private key -----\n"
)
fmt
.
Printf
(
"%s\n"
,
string
(
jsonPriv
[:]))
fmt
.
Printf
(
"------ end private key ------\n"
)
return
nil
}
return
ioutil
.
WriteFile
(
filename
+
".priv"
,
jsonPriv
,
0644
)
}
func
outputPublic
(
key
crypto
.
PublicKey
,
filename
,
kid
,
algorithm
,
use
string
)
error
{
jwkPub
,
err
:=
gojwk
.
PublicKey
(
key
)
if
err
!=
nil
{
return
err
}
jwkPub
.
Kid
=
kid
jwkPub
.
Alg
=
algorithm
jwkPub
.
Use
=
use
jsonPub
,
err
:=
gojwk
.
Marshal
(
jwkPub
)
if
err
!=
nil
{
return
err
}
if
filename
==
"-"
{
fmt
.
Printf
(
"----- begin public key -----\n"
)
fmt
.
Printf
(
"%s\n"
,
string
(
jsonPub
[:]))
fmt
.
Printf
(
"------ end public key ------\n"
)
return
nil
}
return
ioutil
.
WriteFile
(
filename
+
".pub"
,
jsonPub
,
0644
)
}
func
output
(
priv
crypto
.
PrivateKey
,
pub
crypto
.
PublicKey
,
filename
,
kid
,
algorithm
,
use
string
)
error
{
err
:=
outputPrivate
(
priv
,
filename
,
kid
,
algorithm
,
use
,
)
if
err
!=
nil
{
return
err
}
return
outputPublic
(
pub
,
filename
,
kid
,
algorithm
,
use
,
)
}