Danny's Lab

Engineering the World

Coining the phrase "homeops"

Published on: Aug 28, 2023
Reading time: 4 minutes

What is HomeOps?

I'ved used the tag a few times already, but realized I haven't explained the term. In the software world, DevOps is about the operations of software devleopment. These days, software and services are not just useful for business, but can help streamline our home life.

While there does exist the term "homelab", this term is often used to describe describe the hardware used in the home to run software. While the term can encompass both, there is usually an implicit understanding that this is about software that is owned and operated at home (or "on premesis" to use industry lingo).

When I refer to "home operations" or HomeOps, I'm referring to the digital needs of the home, regardless of the implementation. This can be locally operated software, or software services owned and operated by 3rd party cloud providers. The focus is more about the functions need in the digital home. How to meet those needs is part of the discussion, but not limited to being run on your own servers.

Bragging Writes

In an experiment aimd at preserving my bragging rights to the term, I'm going to digitally assert my use of the phrase using a Time Stamp Authority following the Time-Stamp Protocol. Unfortunately the timestamp is about 5 years after my initial use, so I may never be able to prove I originated this phrase back in 2018 (unless perhaps the Internet Archive managed to capture my website.

In any case, here is my claim:

I, Danny Sung, first started using the phrase "HomeOps" publicly on July 29, 2018.

The sha256 hash of this file is: 25ea07eba265a70a34e2ca1081a299591c09d4a38127d92b5abde6dbc0ba908b

The base64 encoded TSQ (timestamp request) of this is:

MFkCAQEwUTANBglghkgBZQMEAgMFAARAqkgb6Yx5MzUnlHmGWTHm22OeCmOVt79z8eRo3VqWl8OFU/U8 Pu+C7ZNLItxeE0SVBTkj0fZX4RXK5IT3XipFmQEB/w==

The base64 encoded TSR (timestamp response) of this is:

MIIVcTADAgEAMIIVaAYJKoZIhvcNAQcCoIIVWTCCFVUCAQMxDzANBglghkgBZQMEAgMFADCCAaMGCyqG SIb3DQEJEAEEoIIBkgSCAY4wggGKAgEBBgQqAwQBMFEwDQYJYIZIAWUDBAIDBQAEQKpIG+mMeTM1J5R5 hlkx5ttjngpjlbe/c/HkaN1alpfDhVP1PD7vgu2TSyLcXhNElQU5I9H2V+EVyuSE914qRZkCA0hxvxgP MjAyMzA4MjkwNDU5MThaAQH/oIIBEaSCAQ0wggEJMREwDwYDVQQKEwhGcmVlIFRTQTEMMAoGA1UECxMD VFNBMXYwdAYDVQQNE21UaGlzIGNlcnRpZmljYXRlIGRpZ2l0YWxseSBzaWducyBkb2N1bWVudHMgYW5k IHRpbWUgc3RhbXAgcmVxdWVzdHMgbWFkZSB1c2luZyB0aGUgZnJlZXRzYS5vcmcgb25saW5lIHNlcnZp Y2VzMRgwFgYDVQQDEw93d3cuZnJlZXRzYS5vcmcxIjAgBgkqhkiG9w0BCQEWE2J1c2lsZXphc0BnbWFp bC5jb20xEjAQBgNVBAcTCVd1ZXJ6YnVyZzELMAkGA1UEBhMCREUxDzANBgNVBAgTBkJheWVybqCCEAgw gggBMIIF6aADAgECAgkAwemGFg2o6YIwDQYJKoZIhvcNAQENBQAwgZUxETAPBgNVBAoTCEZyZWUgVFNB MRAwDgYDVQQLEwdSb290IENBMRgwFgYDVQQDEw93d3cuZnJlZXRzYS5vcmcxIjAgBgkqhkiG9w0BCQEW E2J1c2lsZXphc0BnbWFpbC5jb20xEjAQBgNVBAcTCVd1ZXJ6YnVyZzEPMA0GA1UECBMGQmF5ZXJuMQsw CQYDVQQGEwJERTAeFw0xNjAzMTMwMTU3MzlaFw0yNjAzMTEwMTU3MzlaMIIBCTERMA8GA1UEChMIRnJl ZSBUU0ExDDAKBgNVBAsTA1RTQTF2MHQGA1UEDRNtVGhpcyBjZXJ0aWZpY2F0ZSBkaWdpdGFsbHkgc2ln bnMgZG9jdW1lbnRzIGFuZCB0aW1lIHN0YW1wIHJlcXVlc3RzIG1hZGUgdXNpbmcgdGhlIGZyZWV0c2Eu b3JnIG9ubGluZSBzZXJ2aWNlczEYMBYGA1UEAxMPd3d3LmZyZWV0c2Eub3JnMSIwIAYJKoZIhvcNAQkB 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

There's a number of ways this can be verified. This simplest will be to base64 decode these two files, then use the verify feature on https://freetsa.org/. Or you can use openssl with a command like:

openssl ts -verify -in "${TSRESPONSE}" -queryfile "${TSREQUEST}" -CAfile cacert.pem

openssl should then respond with:

Verification: OK

Script to make your own

You can create your own timestamp request/response files using the following script:

#!/bin/sh INFILE="$1" BASENAME=$(basename "${INFILE}") TMPFILE="/tmp/${BASENAME}" TSREQUEST="${TMPFILE}.tsq" TSRESPONSE="${TMPFILE}.tsr" CAFILE="${HOME}/.freetsa/freetsa/cacert.pem" # Need to download this from https://freetsa.org if [ ! -f "${INFILE}" ]; then cat << EOF $0 <file> Creates a out.tsr file. EOF exit 1 echo "$0 <file>" fi echo "* Generating timestamp request" openssl ts -query -data "${INFILE}" -no_nonce -sha512 -cert -out "${TSREQUEST}" echo "* Generating timestamp response" curl -H "Content-Type: application/timestamp-query" --data-binary "@${TSREQUEST}" https://freetsa.org/tsr > "${TSRESPONSE}" echo "* Inspecting the timestamp response" openssl ts -reply -in "${TSRESPONSE}" -text echo "* Verify using the timestamp response (TSR) using the timestamp request (TSQ)" openssl ts -verify -in "${TSRESPONSE}" -queryfile "${TSREQUEST}" -CAfile "${CAFILE}" echo "* Verify timestamp response (TSR) using the original data" openssl ts -verify -in "${TSRESPONSE}" -data "${INFILE}" -CAfile "${CAFILE}"