debugerrorce

package module
v3.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2024 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const Debugerrorce_app_version = "3.9.0"
View Source
const RSA2048 = 2048
View Source
const RSA4096 = 4096

Variables

View Source
var OutputWriter io.Writer = os.Stderr

OutputWriter defines the default output channel. It can be changed if required.

Functions

func Any2RsaPublicKey

func Any2RsaPublicKey(data any) (*rsa.PublicKey, error)

TODO: support for at least the additional algorithm Ed25519 https://golang.google.cn/pkg/crypto/x509/#PublicKeyAlgorithm Any2RsaPublicKey is required to read public keys from *x509.CertificateRequest

func ArrayContains

func ArrayContains[T comparable](s []T, e T) bool

func ByteArray2File

func ByteArray2File(file *os.File, bytes []byte) error

ByteArray2File writes a byte array into a file. If required it does so in multiple steps. If all succeeds then nil is returned, otherwise an error.

func ByteArray2ReponseWriter

func ByteArray2ReponseWriter(file http.ResponseWriter, bytes []byte) error

ByteArray2ReponseWriter writes a byte array into a file. If required it does so in multiple steps. If all succeeds then nil is returned, otherwise an error.

func Bytea2b64

func Bytea2b64(ba []byte) string

create the sha256 sum of str, don't treat it as hex but as binary and take the base64 of it

func Bytes2sha256

func Bytes2sha256(bytes []byte) []byte

Bytes2sha256 (ex: Sha256bytes2bytes) converts a byte sequence into a SHA-256-based digest of it. The output for this application is the same on the commadn line with: curl -q localhost:8888 | jq -c .Data | tr -d '\n' | shasum -a256 The added newline must be removed. Alternatively, gnu-sed can be used instad of tr: gsed -Ez 's/\n$//' The complete JSON return structure only consists of US-ASCII characters. So potential different escaping for special characters do not have to be considered.

func CaptureOutput

func CaptureOutput(f func()) (stderr string, stdout string)

CaptureOutput get a function as its argument. It executes the function and returns the output (stderr and stdout) created by this function. While capturing this output, this output is not written to default stdout or stderr.

func CondDebug

func CondDebug(msg ...string)

CondDebug outputs if debug is set without an added newline at the EOL.

func CondDebugSet

func CondDebugSet(val bool)

CondDebugSet allows us to turn debug on/off.

func CondDebugStatus

func CondDebugStatus() bool

CondDebugStatus allows to check if debug is turned on/off.

func CondDebugln

func CondDebugln(msg ...string)

CondDebugln is the implementation of a global debug function. If it was turned on using CondDebugSet(true), then the string is shown to stderr. Else, no output is created.

func CreateRSAKeyPair

func CreateRSAKeyPair(bitSize int) (*rsa.PrivateKey, *rsa.PublicKey, error)

CreateRSAKeyPair creates an RSA bitsize-bit key-pair. This function makes only partly sense, as the private key always contains the public key.

func CreateRSAKeyPair2File

func CreateRSAKeyPair2File(outfileName string, bitSize int) error

CreateRSAKeyPair2File checks if the 2 required files do not exist and can be created sucessfully. Then, it transfers control to createKeyPairError2.

func CurrentFunctionName

func CurrentFunctionName() string

CurrentFunctionName returns the name of the current function being executed.

func Debug

func Debug(msg ...string)

Debug outputs a message without adding a newline at the EOL

func DebugRsaPublicKey

func DebugRsaPublicKey(pubKey *rsa.PublicKey)

func Debugln

func Debugln(msg ...string)

Debugln outputs a message with adding a newline at the EOL

func ErrorExit

func ErrorExit(errorCode uint8, msg ...string)

ErrorExit exits the application with the specified error code. The output is written to the assigned output writer, by default stderr.

func ExecCmd

func ExecCmd(cmd string, args ...string) error

ExecCmd is a helper to execute an external application. If the exit status of this command is non-zero, then an error is returned, else nil. Deprecated: ExecCmd is deprecated. Replaced by ExecNoOutputCmd.

func ExecNoOutputCmd

func ExecNoOutputCmd(cmd string) error

ExecNoOutputCmd calls a command but does not expect handle output except for the return code of the app.

func ExecOutputCmd

func ExecOutputCmd(cmd string) ([]byte, error)

func ExecutableReachableByPath

func ExecutableReachableByPath(cmd ...string) error

ExecutableReachableByPath checks for all given input if the input is executable and can be found by the current setting of the PATH variable.

func ExitIfError

func ExitIfError(err error, exitcode uint8, msg string)

ExitIfError exists using ErrorExit if the supplied err is not nil. In such a case, the error message of err will be added to the message.

func FatalGetEnvValue

func FatalGetEnvValue(key string) string

FatalGetEnvValue does the same as getEnvValue, but exits with an error

func FilenameWithoutSuffix

func FilenameWithoutSuffix(filename string) string

func Format

func Format(format DestinationFormat, body interface{}) (string, error)

from fiber

func GetCertAttributesCnOu added in v3.9.0

func GetCertAttributesCnOu(headers map[string][]string) (string, string, error)

func GetEnvValue

func GetEnvValue(key string) (string, error)

GetEnvValue retrieves a value from the ENV if exists, otherwise returns an error

func GetEnvValueOrDefaultBool

func GetEnvValueOrDefaultBool(key string, defaultValue bool) bool

GetEnvValueOrDefaultBool returns the ENV boolean value for the given key or the default one

func GetEnvValueOrDefaultInt

func GetEnvValueOrDefaultInt(key string, defaultValue int) int

GetEnvValueOrDefaultInt returns the ENV int value for the given key or the default one if none could be found or if there is an error parsing the string to an int

func GetEnvValueOrDefaultString

func GetEnvValueOrDefaultString(key string, defaultValue string) string

GetEnvValueOrDefaultString returns the ENV string value for the given key or the default one

func IsDirectory

func IsDirectory(filename string) bool

func IsExecutableCmd

func IsExecutableCmd(cmd string) error

IsExecutableCmd is a predicate checking if the given parameter represents an executable file. It returns nil in the positive case. Otherwise, an error is returned.

func IsExistingFile

func IsExistingFile(filename string) bool

isExistingFile predicate that sometimes can make the code easier (if we do not are about the error value)

func IsPlainFile

func IsPlainFile(filename string) bool

isPlainFile is a predicate returning true if the supplied argument is an existing, plain file (no directory, device-file,...)

func LoadPrivateKey

func LoadPrivateKey(filename string) (*rsa.PrivateKey, error)

LoadPrivateKey load a PEM-encoded RSA private key from a file

func LoadRsaPublicKey

func LoadRsaPublicKey(filename string) (*rsa.PublicKey, error)

LoadPublicKey load a PEM-encoded RSA public key from a file

func LogErr

func LogErr(msg string)

LogErr creates a message preprended with ERROR to syslog and stderr, but tries to continue execution.

func LogInfo

func LogInfo(msg string)

LogInfo creates an info error message to syslog and STDERR.

func LogInit

func LogInit(tag string)

LogInit tries to initialise the logging service.

func LogStringInit

func LogStringInit(tag string)

LogStringInit does not use syslog (for dockerised environments. Instead, it writes all messages to stderr) This is suited for dockerised environments.

func LogWarn

func LogWarn(msg string)

LogWarn creates a syslog and STDERR message labeled with WARNING.

func Pem2CSR

func Pem2CSR(bytes []byte) (*x509.CertificateRequest, error)

func Pem2RsaPrivateKey

func Pem2RsaPrivateKey(der []byte) (*rsa.PrivateKey, error)

Pem2RsaPrivateKey load a PEM-encoded RSA private key from a buffer. The function does not try to read multiple keys from the byte array. Only the first PEM block is processed.

func Pem2RsaPublicKey

func Pem2RsaPublicKey(der []byte) (*rsa.PublicKey, error)

Pem2RsaPublicKey load a PEM-encoded RSA public key from a buffer. The function does not try to read multiple keys from the byte array. Only the first PEM block is processed.

func PsqlGetUser

func PsqlGetUser(constr string) (string, error)

PsqlGetUser returns the user name from a postgresql connection string.

func PsqlListTablesInCurrentDatabase

func PsqlListTablesInCurrentDatabase(dbPool *pgxpool.Pool) ([]string, error)

PsqlListTablesInCurrentDatabase delivers all existing tables in the current database

func PsqlVerifyTablePermissions

func PsqlVerifyTablePermissions(dbPool *pgxpool.Pool, user string, perms PsqlTablePermission, tables ...string) error

/ foreach export function PsqlVerifyTablePermissions @Summary check for existence of table and permissions for the specified DB user @Description PostgreSQL-specific code @Produce error | nil @Success nil "no error ⤳ tables existing in the database, user existing, user has required permissions" @Failure error "USAGE_ERROR: wrong arguments to function" @Failure error "DBMS_ERROR: DBMS returned an error" @Failure error "TABLE_ERROR: permissions not existing for a table"

func RsaPrivateKey2Sha256Digest

func RsaPrivateKey2Sha256Digest(prvKey *rsa.PrivateKey) (string, error)

func RsaPublicKey2Sha256Digest

func RsaPublicKey2Sha256Digest(pubKey *rsa.PublicKey) (string, error)

func Sign115ByteArray

func Sign115ByteArray(key *rsa.PrivateKey, digest []byte) ([]byte, error)

Sign115ByteArray returns a signature for the given digest or returns an error

func Sign115ByteArray2Base64

func Sign115ByteArray2Base64(key *rsa.PrivateKey, digest []byte) (string, error)

Sign115ByteArray2Base64 signs a byte array by calling SignByteArray but returns the signature as a base64-encoded string.

func SignPSSByteArray

func SignPSSByteArray(key *rsa.PrivateKey, digest []byte) ([]byte, error)

SignPSSByteArray returns a signature for the given digest or returns an error

func SignPSSByteArray2Base64

func SignPSSByteArray2Base64(key *rsa.PrivateKey, digest []byte) (string, error)

SignPSSByteArray2Base64 returns the signature as a base64-encoded string.

func Str2sha256

func Str2sha256(str string) []byte

func String2md5

func String2md5(str string) string

func ValidIPv4Address

func ValidIPv4Address(ipv4 string) error

func Verify115Base64String

func Verify115Base64String(key *rsa.PublicKey, b64 string, msg string) error

Verify115Base64String accepts a base64 encoded string as the signature. It decodes the signature and calls VerifyByteArray.

func Verify115ByteArray

func Verify115ByteArray(key *rsa.PublicKey, digest []byte, msg []byte) error

Verify115ByteArray verifies a digital signature (digest). If no error is returned, then the verification was successful. Furthermore, it recalculates the digest of the message. It should result in the same digest as the digitally signed one.

func VerifyPSSBase64String

func VerifyPSSBase64String(key *rsa.PublicKey, b64 string, msg string) error

VerifyPSSBase64String accepts a base64 encoded string as the signature. It decodes the signature and calls VerifyByteArray.

func VerifyPSSByteArray

func VerifyPSSByteArray(key *rsa.PublicKey, digest []byte, msg []byte) error

VerifyPSSByteArray verifies a digital signature (digest). If no error is returned, then the verification was successful. Furthermore, it recalculates the digest of the message. It should result in the same digest as the digitally signed one.

func WriteRsaPrivateKey

func WriteRsaPrivateKey(file *os.File, privKey *rsa.PrivateKey) error

WriteRsaPrivateKey converts the key to PEM format and writes them to a file.

func WriteRsaPublicKey

func WriteRsaPublicKey(file *os.File, pubKey *rsa.PublicKey) error

WriteRsaPublicKey converts the public key to PEM format and writes them to the file.

Types

type DestinationFormat

type DestinationFormat int
const (
	FormatText DestinationFormat = iota
	FormatJSON
	FormatPrettyJson
)

type PsqlTablePermission

type PsqlTablePermission string
const (
	SELECT     PsqlTablePermission = "r"
	INSERT     PsqlTablePermission = "a"
	UPDATE     PsqlTablePermission = "w"
	DELETE     PsqlTablePermission = "d"
	TRUNCATE   PsqlTablePermission = "D"
	TRIGGER    PsqlTablePermission = "t"
	REFERENCES PsqlTablePermission = "x"
	ALL_PERMS  PsqlTablePermission = "arwdDxt"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL