Howdy! Welcome to my homepage (is that too old-fashioned?). Here, you can learn more about me, my work, and some projects I'm involved in.
I'm a security engineer with experience across most of the OSI stack. Recently I began dipping my toes into the world of Rust development. I'm passionate about computing and have a hobby of exploring esoteric and fringe systems and programs.
If successful, you will immediately give up control of your current *.bsky.social handle, which may then be available for registration by other people.
This is an unsupported, bleeding-edge feature.
Please only proceed if you feel comfortable with bugs, account access issues, lost data, temporal shifts, and potential space invasion. I do not work for Bluesky PBLLC and this is not legal advice. Actions often have consequences.
Seriously. You'll be able to do this through the app in like a week.
Since the @-protocol allows you to change your handle, your account is identified by a DID document, and in turn by its hash To find out what that is, you can send an HTTP request to the handle update()
method.
Here's a few ways to do that:
GET: https://bsky.social/xrpc/com.atproto.handle.resolve
- Params:
- Key: handle
- Value: your.current.handle
- Authorization: None
- Body: None
curl https://bsky.social/xrpc/com.atproto.handle.resolve?handle=your.current.handle
http get https://bsky.social/xrpc/com.atproto.handle.resolve \
handle==your.current.handle
If you get a response of "did:fake:donotuse", then something went wrong. If it looks like gibberish, you're in business.
You need to add a TXT
record to your domain.
Mine looks like this:
GET: https://bsky.social/xrpc/com.atproto.session.create
- Params:
- Key: handle
- Value: your.current.handle
- Authorization: None
- Body:
{
"identifier": "your.current.handle",
"password": "password"
}
We need the accessJwt
token from the reponse. Be careful to not copy any quotes or whitespace.
Paste the token into Authorization > Type: Bearer Token.
http post https://bsky.social/xrpc/com.atproto.session.create identifier=your.current.handle password=<your-password>
POST: https://bsky.social/xrpc/com.atproto.handle.update
- Authorization: Bearer Token = <accessJwt>
- Params: None
- Body:
- Encoding: application/json (click the dropdown menu)
{
"handle": "your.domain.handle",
}
Using cURL
:
Using httpie
:
http post https://bsky.social/xrpc/com.atproto.handle.update Authorization:"Bearer <accessJwt>" handle=your.domain.name
If you don't get an error, then it probably worked.
You can confirm that your request was successful if your new handle shows up in the DID:PLC server operation logs (https://plc.directory/export?after=2023-03-XXT00:00).
You can relog into Bluesky now. If you are using the beta iOS app, you will have to log in using your email address for the time being.
Rust Implementation of the Authenticated Transport Protocol, as well as experiments with Distributed Identities.
Created a mathematical model for motion of celestial bodies in the Solar System and developed an numerical solution (Runge-Kutta) using MATLAB. Designed extendable simulator for their movement with video output.
Updated write-up coming soon.