Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
89d1b09f
Unverified
Commit
89d1b09f
authored
Feb 03, 2017
by
Christoph Blecker
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move Private Key parsing to k8s.io/client-go/util/cert
parent
7028abc5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
6 additions
and
27 deletions
+6
-27
BUILD
pkg/serviceaccount/BUILD
+2
-0
jwt.go
pkg/serviceaccount/jwt.go
+2
-26
jwt_test.go
pkg/serviceaccount/jwt_test.go
+2
-1
No files found.
pkg/serviceaccount/BUILD
View file @
89d1b09f
...
...
@@ -23,6 +23,7 @@ go_library(
"//vendor:k8s.io/apiserver/pkg/authentication/authenticator",
"//vendor:k8s.io/apiserver/pkg/authentication/serviceaccount",
"//vendor:k8s.io/apiserver/pkg/authentication/user",
"//vendor:k8s.io/client-go/util/cert",
],
)
...
...
@@ -38,6 +39,7 @@ go_test(
"//pkg/serviceaccount:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apiserver/pkg/authentication/serviceaccount",
"//vendor:k8s.io/client-go/util/cert",
],
)
...
...
pkg/serviceaccount/jwt.go
View file @
89d1b09f
...
...
@@ -29,6 +29,7 @@ import (
"k8s.io/apiserver/pkg/authentication/authenticator"
apiserverserviceaccount
"k8s.io/apiserver/pkg/authentication/serviceaccount"
"k8s.io/apiserver/pkg/authentication/user"
"k8s.io/client-go/util/cert"
"k8s.io/kubernetes/pkg/api/v1"
jwt
"github.com/dgrijalva/jwt-go"
...
...
@@ -64,38 +65,13 @@ func ReadPrivateKey(file string) (interface{}, error) {
if
err
!=
nil
{
return
nil
,
err
}
key
,
err
:=
ReadPrivateKeyFrom
PEM
(
data
)
key
,
err
:=
cert
.
ParsePrivateKey
PEM
(
data
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"error reading private key file %s: %v"
,
file
,
err
)
}
return
key
,
nil
}
// ReadPrivateKeyFromPEM is a helper function for reading a private key from a PEM-encoded file
func
ReadPrivateKeyFromPEM
(
data
[]
byte
)
(
interface
{},
error
)
{
var
block
*
pem
.
Block
for
{
// read the next block
block
,
data
=
pem
.
Decode
(
data
)
if
block
==
nil
{
break
}
// get PEM bytes for just this block
blockData
:=
pem
.
EncodeToMemory
(
block
)
if
key
,
err
:=
jwt
.
ParseRSAPrivateKeyFromPEM
(
blockData
);
err
==
nil
{
return
key
,
nil
}
if
key
,
err
:=
jwt
.
ParseECPrivateKeyFromPEM
(
blockData
);
err
==
nil
{
return
key
,
nil
}
// tolerate non-key PEM blocks for compatibility with things like "EC PARAMETERS" blocks
// originally, only the first PEM block was parsed and expected to be a key block
}
return
nil
,
fmt
.
Errorf
(
"data does not contain a valid RSA or ECDSA private key"
)
}
// ReadPublicKeys is a helper function for reading an array of rsa.PublicKey or ecdsa.PublicKey from a PEM-encoded file.
// Reads public keys from both public and private key files.
func
ReadPublicKeys
(
file
string
)
([]
interface
{},
error
)
{
...
...
pkg/serviceaccount/jwt_test.go
View file @
89d1b09f
...
...
@@ -24,6 +24,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
apiserverserviceaccount
"k8s.io/apiserver/pkg/authentication/serviceaccount"
"k8s.io/client-go/util/cert"
"k8s.io/kubernetes/pkg/api/v1"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake"
...
...
@@ -106,7 +107,7 @@ X2i8uIp/C/ASqiIGUeeKQtX0/IR3qCXyThP/dbCiHrF3v1cuhBOHY8CLVg==
-----END PUBLIC KEY-----`
func
getPrivateKey
(
data
string
)
interface
{}
{
key
,
_
:=
serviceaccount
.
ReadPrivateKeyFrom
PEM
([]
byte
(
data
))
key
,
_
:=
cert
.
ParsePrivateKey
PEM
([]
byte
(
data
))
return
key
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment