declare -gxir __uipc_version=1
- return 0
-}
-
-_uipc_encode() {
- local decoded="$1"
-
- if (( $# > 0 )); then
- base64 -w 0 <<< "$decoded"
- else
- base64 -w 0 < /dev/stdin
- fi
-}
-
-_uipc_decode() {
- local encoded="$1"
+ implements "ipc"
- if (( $# > 0 )); then
- base64 -d <<< "$encoded"
- else
- base64 -d < /dev/stdin
- fi
+ return 0
}
-
_uipc_msg_get() {
local msg="$1"
local field="$2"
local value
- if ! value=$(_uipc_decode "$msg" | jq -e -r ".$field" 2>/dev/null); then
+ if ! value=$(ipc_decode "$msg" | jq -e -r ".$field" 2>/dev/null); then
return 1
fi
cat <<EOF | log_highlight "uipc message"
Message version: $version [supported: $version_ok]
-$(_uipc_decode <<< "$msg" | jq .)
+$(ipc_decode <<< "$msg" | jq .)
EOF
return 0
local message
local encoded_message
- if ! encoded_data=$(_uipc_encode <<< "$data"); then
+ if ! encoded_data=$(ipc_encode <<< "$data"); then
log_error "Could not encode data"
elif ! timestamp=$(date +"%s"); then
"data" "$encoded_data"); then
log_error "Could not make message"
- elif ! encoded_message=$(_uipc_encode "$message"); then
+ elif ! encoded_message=$(ipc_encode "$message"); then
log_error "Could not encode message"
else
return 1
fi
- if ! data_raw=$(_uipc_decode <<< "$data"); then
+ if ! data_raw=$(ipc_decode <<< "$data"); then
return 1
fi
}
Describe "Encoding"
- It "_uipc_encode() outputs base64"
+ It "ipc_encode() outputs base64"
_test_encoding() {
local data
data=$(dd if=/dev/urandom bs=1024 count=1024 2>/dev/null |
- _uipc_encode)
+ ipc_encode)
if ! is_base64 "$data"; then
return 1
The status should equal 0
End
- It "_uipc_encode() output has correct length"
+ It "ipc_encode() output has correct length"
_test_encoding_length() {
local data
local block_size
input_bits=$((input_bytes * 8))
actual_length=$(dd if=/dev/urandom bs="$block_size" count="$block_num" 2>/dev/null |
- _uipc_encode | wc -c)
+ ipc_encode | wc -c)
if (( input_bits % 24 > 0 )); then
# data is padded
The status should equal 0
End
- It "_uipc_encode() output does not contain newlines"
+ It "ipc_encode() output does not contain newlines"
_test_encoding_newlines() {
local lines
lines=$(dd if=/dev/urandom bs=1024 count=1024 2>/dev/null |
- _uipc_encode | wc -l)
+ ipc_encode | wc -l)
if (( lines != 0 )); then
return 1
The status should equal 0
End
- It "_uipc_decode() reverses _ipc_encode()"
+ It "ipc_decode() reverses _ipc_encode()"
_test_encode_decode() {
local data_before
local data_encoded
local data_after
data_before=$(dd if=/dev/urandom bs=1024 count=1024 2>/dev/null | base64 -w 0)
- data_encoded=$(_uipc_encode <<< "$data_before")
- data_after=$(_uipc_decode <<< "$data_encoded")
+ data_encoded=$(ipc_encode <<< "$data_before")
+ data_after=$(ipc_decode <<< "$data_encoded")
if [[ "$data_before" != "$data_after" ]]; then
return 1
return 1
fi
- if ! _uipc_decode <<< "$msg" | jq -r -e . ; then
+ if ! ipc_decode <<< "$msg" | jq -r -e . ; then
return 1
fi
return 1
fi
- if ! spec/validate.py spec/ipc_message.schema.json <(_uipc_decode "$msg"); then
+ if ! spec/validate.py spec/ipc_message.schema.json <(ipc_decode "$msg"); then
return 1
fi