atproto pds in zig pds.zat.dev
pds atproto
Something went wrong. Try again.
Zig
123456789101112131415161718192021222324252627282930313233const std = @import("std");const zds = @import("zds");
const Io = std.Io;
var app_threaded_io: Io.Threaded = undefined;pub const std_options_debug_threaded_io: ?*Io.Threaded = &app_threaded_io;
pub fn main(init: std.process.Init) !void { const allocator = std.heap.smp_allocator; app_threaded_io = Io.Threaded.init(allocator, .{}); const io = app_threaded_io.io(); var args = std.process.Args.Iterator.init(init.minimal.args); _ = args.next(); const authorization = args.next() orelse return usage(); const audience = args.next(); var keypair = try zds.zat.Keypair.fromSecretKey(.p256, @splat(0x42)); const key = try keypair.did(allocator); const params = if (audience != null) "(\"authorization\" \"atproto-space-audience\")" else try std.fmt.allocPrint(allocator, "(\"authorization\");keyid=\"{s}\"", .{key}); const base = try zds.internal.space_signature.signatureBase(allocator, authorization, audience, params); const signature = try keypair.sign(base); var encoded: [88]u8 = undefined; const b64 = std.base64.standard.Encoder.encode(&encoded, &signature.bytes); std.debug.print("signature-input: atproto-space={s}\nsignature: atproto-space=:{s}:\n", .{ params, b64 }); if (audience) |did| std.debug.print("atproto-space-audience: {s}\n", .{did}); _ = io;}
fn usage() error{InvalidArguments} { std.debug.print("usage: zds-space-signature AUTHORIZATION [AUDIENCE]\n", .{}); return error.InvalidArguments;}