Documentation ¶
Overview ¶
Package keygen is a helper to generate symmetric key(Ex: HMAC).
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenSymmetricKey ¶
GenSymmetricKey generates key byte array for symmetric key alogorithm like HMAC.
Params: size: Key size in bits. Ex: 256 bits for HMAC SHA-256 and 512 bits for HMAC SHA-512. Return: k: Key stored in byte array. err: error.
Example ¶
package main import ( "bytes" "fmt" "github.com/northbright/keygen" ) func main() { var err error size := 256 // Key size = 256 bits. key := make([]byte, size) if key, err = keygen.GenSymmetricKey(size); err != nil { fmt.Printf("GenSymmetricKey(%v) error: %v\n", size, err) } // Compare a zero-value byte array to see if key is generated. fmt.Printf("%v", !bytes.Equal(key, make([]byte, size))) }
Output: true
func GenSymmetricKeyFile ¶
GenSymmetricKeyFile generates key file for symmetric key alogrithm like HMAC.
Params: size: Key size in bits. Ex: 256 bits for HMAC SHA-256 and 512 bits for HMAC SHA-512. outputFile: Output key file. perm: Permission of key file. The final permission of file will be perm - umask. Ex: 0666 - 002(centos) = 0664. Return: err: error.
Example ¶
package main import ( "fmt" "os" "os/user" "github.com/northbright/keygen" "github.com/northbright/pathhelper" ) func main() { var err error size := 512 // Key size = 256 bits. u, _ := user.Current() username := u.Username keyFile := fmt.Sprintf("/home/%v/my.key", username) // make absolute key path for current user. p, err := pathhelper.GetAbsPath(keyFile) if err != nil { fmt.Printf("GetAbsPath(%v) error: %v\n", keyFile, err) } fmt.Fprintf(os.Stderr, "Key file: %v\n", p) if err = keygen.GenSymmetricKeyFile(size, p, 0660); err != nil { fmt.Printf("GenSymmetricKeyFile(%v) error: %v\n", size, err) } }
Output:
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.