49 lines
869 B
Go
49 lines
869 B
Go
package xkeypairs
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"git.rootprojects.org/root/keypairs"
|
|
)
|
|
|
|
// ParsePEMPrivateKey will parse a PEM Private Key (or JWK or DER) but in future versions will fail to parse other key input types
|
|
func ParsePEMPrivateKey(block []byte) (keypairs.PrivateKey, error) {
|
|
// TODO do not parse DER or JWK
|
|
return keypairs.ParsePrivateKey(block)
|
|
}
|
|
|
|
func ParseDuration(exp string) (int, error) {
|
|
if "" == exp {
|
|
exp = "15m"
|
|
}
|
|
|
|
mult := 1
|
|
switch exp[len(exp)-1] {
|
|
case 'w':
|
|
mult *= 7
|
|
fallthrough
|
|
case 'd':
|
|
mult *= 24
|
|
fallthrough
|
|
case 'h':
|
|
mult *= 60
|
|
fallthrough
|
|
case 'm':
|
|
mult *= 60
|
|
fallthrough
|
|
case 's':
|
|
// no fallthrough
|
|
default:
|
|
// could be 'k' or 'z', but we assume its empty
|
|
exp += "s"
|
|
}
|
|
|
|
// 15m => num=15, mult=1*60
|
|
num, err := strconv.Atoi(exp[:len(exp)-1])
|
|
if nil != err {
|
|
return 0, err
|
|
}
|
|
|
|
return num * mult, nil
|
|
}
|