Add auth rpc service to generate access keys, add corresponding test

This commit is contained in:
Harshavardhana
2015-07-08 14:33:54 -07:00
parent 770fd23afa
commit 396b728031
8 changed files with 118 additions and 18 deletions

View File

@@ -26,26 +26,24 @@ var alphaNumericTable = []byte("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")
// GenerateAccessKeyID - generate random alpha numeric value using only uppercase characters
// takes input as size in integer
func GenerateAccessKeyID(size int) ([]byte, error) {
alpha := make([]byte, size)
func GenerateAccessKeyID() ([]byte, error) {
alpha := make([]byte, MinioAccessID)
_, err := rand.Read(alpha)
if err != nil {
return nil, err
}
for i := 0; i < size; i++ {
for i := 0; i < MinioAccessID; i++ {
alpha[i] = alphaNumericTable[alpha[i]%byte(len(alphaNumericTable))]
}
return alpha, nil
}
// GenerateSecretAccessKey - generate random base64 numeric value from a random seed.
func GenerateSecretAccessKey(size int) ([]byte, error) {
rb := make([]byte, size)
func GenerateSecretAccessKey() ([]byte, error) {
rb := make([]byte, MinioSecretID)
_, err := rand.Read(rb)
if err != nil {
return nil, err
}
return []byte(base64.StdEncoding.EncodeToString(rb))[:size], nil
return []byte(base64.StdEncoding.EncodeToString(rb))[:MinioSecretID], nil
}

View File

@@ -30,10 +30,10 @@ type MySuite struct{}
var _ = Suite(&MySuite{})
func (s *MySuite) TestAuth(c *C) {
secretID, err := auth.GenerateSecretAccessKey(auth.MinioSecretID)
secretID, err := auth.GenerateSecretAccessKey()
c.Assert(err, IsNil)
accessID, err := auth.GenerateAccessKeyID(auth.MinioAccessID)
accessID, err := auth.GenerateAccessKeyID()
c.Assert(err, IsNil)
c.Assert(len(secretID), Equals, auth.MinioSecretID)