1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| package baidujwe
import ( "github.com/dvsekhvalnov/jose2go" "fmt" "encoding/json" "encoding/base64" "github.com/dvsekhvalnov/jose2go/compact" )
func GetJweHeader(token_string string) (jwe_header map[string]interface{}, err error) { jh,err := getJweHeader(token_string) return jh, err }
func getJweHeader(token_string string) (jwe_header map[string]interface{}, err error) { var jwtHeader map[string]interface{} parts, err := compact.Parse(token_string) if err != nil { return nil , err } header := parts[0] json.Unmarshal(header, &jwtHeader) fmt.Println(jwtHeader) return jwtHeader, nil }
func GetReqParams(token_string string, psk string)(baidu_req map[string]interface{}, err error) { req_map, err := getReqParams(token_string, psk) return req_map, err }
func getReqParams(token_string string, psk string)(baidu_req map[string]interface{}, err error) { decodeBytes, _ := base64.RawURLEncoding.DecodeString(psk) var req_map map[string]interface{} req_parm, _, err := jose.Decode(token_string, decodeBytes) if err != nil { return nil, err } req_byte := []byte(req_parm) json.Unmarshal(req_byte, &req_map) return req_map, nil }
func GetEncString(payload string, psk string, jwtHeader map[string]interface{}) (encString string, err error) { token, err := getEncString(payload, psk, jwtHeader) return token, err }
func getEncString(payload string, psk string, jwtHeader map[string]interface{}) (encString string, err error) { psk_byte, err_1 := base64.RawURLEncoding.DecodeString(psk) if err_1 != nil { return "", err_1 } token, err_2 := jose.Encrypt(payload, jose.A128KW, jose.A128CBC_HS256, psk_byte, jose.Headers(jwtHeader)) if err_2 != nil { return "", err_2 } return token, nil }
|