github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/functions/base64.go (about)

     1  package functions
     2  
     3  import (
     4  	"encoding/base64"
     5  	"encoding/json"
     6  )
     7  
     8  func Base64(args ...interface{}) interface{} {
     9  
    10  	if len(args) == 0 {
    11  		return nil
    12  	}
    13  
    14  	input := args[0].(string)
    15  
    16  	return base64.StdEncoding.EncodeToString([]byte(input))
    17  }
    18  
    19  func Base64ToString(args ...interface{}) interface{} {
    20  	if len(args) == 0 {
    21  		return nil
    22  	}
    23  
    24  	input := args[0].(string)
    25  
    26  	result, err := base64.StdEncoding.DecodeString(input)
    27  	if err != nil {
    28  		return ""
    29  	}
    30  	return string(result)
    31  }
    32  
    33  func Base64ToJson(args ...interface{}) interface{} {
    34  
    35  	if len(args) == 0 {
    36  		return nil
    37  	}
    38  
    39  	input := args[0].(string)
    40  
    41  	decoded, err := base64.StdEncoding.DecodeString(input)
    42  	if err != nil {
    43  		return nil
    44  	}
    45  
    46  	var result map[string]interface{}
    47  
    48  	if err := json.Unmarshal(decoded, &result); err != nil {
    49  		return nil
    50  	}
    51  	return result
    52  }