Show newer

meta 

oh goodie, the both-sides-ers have come to lend the raspberry pi fiasco their original, authoritative, in no way completely identikit voices and opinions

Huh, I wonder what [thing] is. *searches online*

*opens article*

*article is actually a video*

WELP, guess I'll never know! *closes tab*

i have enough clean stuff to tide me over for at least 3 weeks, so i'm going to look at replacing the washing machine after christmas - hopefully i can pick something up in a january sale?

which at the moment also means running the gauntlet of dogs and arseholes :-(

Show thread

desperately hoping that the towel wrapped around my condensate pipe will prevent it from freezing up this week

as design flaws go, that one is particularly annoying... you'd think that a boiler would automatically figure out that it needed to send a blast of the hottest water it could make down the condensate pipe if it started backing up in freezing weather, but no - i have to take a boiled kettle round the back of the house and pour it onto the affected pipe

Uk spy cops 

The British spy police infiltrated groups advocating against racism. Peaceful groups that were not even suspected of breaking any laws.

They stole the identities of dead children.

They got into long term relationships with women who they had children with. Until they faked their own deaths and vanished suddenly.

Their behaviour was absolutely shocking and was not lawful. The Tories responded by increasing the scope of how police are allowed to act.

Read more about them: theguardian.com/uk-news/series

Thats who raspberry pi, the beloved teaching platform, hired.

well, i know who's getting my vote for - a late entrant, but my god, they left it all on the field

looks like my order of two massive oversized thermal hoodies (which i placed 3 months ago!) will finally be arriving at my local post office *checks weather forecast* just after this cold snap eases up

well, this is fine

Poverty and war and fascism and greed, these are not laws of nature. Capitalism is not decreed by physics. Fascism is not the result of a natural, inevitable process. These are choices people made, make, and keep making.

Show thread

transhaj? ikea shut up and take my money

(ok, not quite so much of it, how much does it cost to post a giant shark stuffie anyway)

Raspberry Pi Foundation 

Fediverse: There are no good companies on here.

RPi Foundation: *joins*

Fediverse: There is one good company on here.

RPi Foundation: Hires cop whose job was surveillance.

Fediverse: There are no good companies on here.

(please boost to send this supposed "secret" across the fediverse) long, code. <=rpi3 codec licensing algorithm. replace the trigraphs (change ??= to # ) if your compiler doesn't like them. 

// #RaspberryPi codec licensing serial algo (<=RPi3)
// shoutouts to fabien perigaud/synacktiv. your beerump 2017 presentation slides started me on this journey.
// (sure you redacted the fun stuff, I just rediscovered it myself)
// also shoutouts to everyone involved in BCM2708 reversing!
// greetings to elites, fuckings to lamers (second category includes broadcom and rpi foundation)

??=include <stdint.h>
??=include <stdio.h>

typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;

u8 vce_data[] = {
0x54, 0x6f, 0x76, 0x6b, 0x94, 0xce, 0x1a, 0x57, 0x56, 0x51, 0x0c, 0xb2, 0x72, 0xc9, 0xc3, 0x12,
0x13, 0xbc, 0xe8, 0xd2, 0x5b, 0xa3, 0x2d, 0x2a, 0x5a, 0x62, 0x4d, 0xeb, 0x16, 0x40, 0x05, 0x87,
0xe0, 0x98, 0x39, 0xf7, 0xac, 0xc6, 0xab, 0x7c, 0xe9, 0xfb, 0x07, 0xaa, 0x29, 0xcd, 0x1d, 0x9b,
0xf6, 0x0e, 0x01, 0xbb, 0x5c, 0xfc, 0x15, 0xae, 0xd9, 0xfa, 0x9c, 0xef, 0xf1, 0x75, 0x8e, 0x70,
0x46, 0x8b, 0xb0, 0x89, 0x50, 0xaf, 0x6e, 0x67, 0x18, 0xda, 0xee, 0xd4, 0x32, 0xbe, 0x4e, 0x58,
0x5d, 0x1f, 0x4b, 0x73, 0x88, 0xc0, 0x79, 0x02, 0xde, 0x47, 0xa0, 0x43, 0x9a, 0xdb, 0xc8, 0x35,
0x95, 0x3c, 0xcc, 0x8d, 0x64, 0x2f, 0x14, 0x68, 0x00, 0x71, 0x03, 0xb9, 0xed, 0x0b, 0xf3, 0x24,
0x60, 0xb1, 0x17, 0x63, 0xdf, 0x48, 0x41, 0xa4, 0x28, 0x5e, 0x2b, 0xd8, 0xb4, 0x90, 0xba, 0x83,
0xe4, 0x08, 0xd0, 0xe2, 0xb8, 0x6a, 0x10, 0x74, 0x9f, 0x7b, 0x19, 0x38, 0x8f, 0x91, 0xd6, 0xa8,
0x27, 0x06, 0x30, 0x33, 0x61, 0x34, 0x25, 0x21, 0x53, 0xc7, 0x66, 0x23, 0xff, 0xc5, 0x80, 0x85,
0xf4, 0xd7, 0x97, 0x99, 0x55, 0xf2, 0x8c, 0x04, 0x6c, 0x4f, 0xa1, 0x36, 0x20, 0x0a, 0xe1, 0x44,
0x59, 0xcf, 0x7d, 0xb6, 0xf9, 0x0f, 0x6d, 0x11, 0x78, 0x93, 0xe5, 0x3f, 0xf0, 0x9e, 0x84, 0xd3,
0x7e, 0xbd, 0xd1, 0xf5, 0xa5, 0x81, 0x22, 0x37, 0xf8, 0x52, 0xe3, 0x5f, 0xa9, 0xca, 0xfd, 0x42,
0x7f, 0x09, 0xa2, 0x9d, 0x8a, 0xb7, 0x4a, 0xe6, 0xa6, 0x77, 0x3d, 0x1c, 0x2e, 0xcb, 0x1b, 0x69,
0xb3, 0x1e, 0xc1, 0x7a, 0x82, 0xdd, 0x2c, 0xdc, 0x49, 0xea, 0x3a, 0xe7, 0x31, 0x4c, 0xad, 0xbf,
0x0d, 0xc2, 0xc4, 0x96, 0x65, 0x26, 0xfe, 0x92, 0x86, 0x3b, 0x3e, 0xec, 0xd5, 0xb5, 0xa7, 0x45
};

??=define INLINE static inline __attribute__ ((optimize (3))) __attribute__((always_inline))

INLINE u32 GET(u32 var, u8 bits) {
return vce_data[(var >> bits) & 0xff] << bits;
}

// should probably use bitwise OR, but this is what the vce code does
INLINE u32 GET32(u32 var) {
return GET(var,24) ^ GET(var,16) ^ GET(var,8) ^ GET(var,0);
}

// vce has no rotate instructions, so it does it the long way as in C
INLINE u32 ROR(u32 var, u32 right) {
return (var >> right) ^ (var << (32 - right));
}

u32 codec_license_hash(u32 board_serial /* r1 */,u32 codec /* r2 */) {

??=define CODEC_XOR_BOARD_ROR(bits) codec ^= ROR(board_serial,bits)
??=define BOARD_XOR_CODEC_ROR(bits) board_serial ^= ROR(codec,bits)

for (u32 i = 0; i < 17; i++) {
CODEC_XOR_BOARD_ROR(1);
BOARD_XOR_CODEC_ROR(6);
CODEC_XOR_BOARD_ROR(13);
BOARD_XOR_CODEC_ROR(17);
CODEC_XOR_BOARD_ROR(21);
BOARD_XOR_CODEC_ROR(29);

board_serial = GET32(board_serial);
codec = GET32(codec);
}

??=undef CODEC_XOR_SHIFTS_BOARD
??=undef BOARD_XOR_SHIFTS_CODEC

return codec;
}

// This board serial taken from hxxps://web.archive.org/web/20221208160705/forums.raspberrypi.com/viewtopic.php?t=38901
// The person who owns the SoC with this serial burned in fuses did a nice thing and provided their own WVC1 + MPG2 keys, we can use that to verify this implementation is correct:
// decode_MPG2=0x6fd66307
// decode_WVC1=0x01a512b0
??=define BOARD_SERIAL 0x9d3e8cb1

void main() {
printf("??= VC1 key\ndecode_WVC1=0x%08x\n\n", codec_license_hash(BOARD_SERIAL, 0xf00bad34 ^ 0x57564331 /* 'WVC1' */));
printf("??= MPEG-2 key\ndecode_MPG2=0x%08x\n\n", codec_license_hash(BOARD_SERIAL, 0xf00bad34 ^ 0x4D504732 /* 'MPG2 */));
printf("??= Super-secret key ;)\n??=\n"
"??= start.elf, before booting ARM, reads bootsig key from efuses, then compares against 1/2 of 5 hardcoded keys.\n"
"??= If not equal, then this key is checked, if not correct then infinite loop + LED flash\n"
"??= (same as if 3rdsig -- ARM kernel binary HMAC signature -- verification fails)\n"
"??= As to *why* this is done, I have no idea. Bootsig key is also 128-bit HMAC key and this reduces the available\n"
"??= possible entropy for unique bootsig key (necessary for boot-time security I would think!) down to either\n"
"??= 51, 52, or 77 bits depending on what key was burned into your Pi's efuses...\n"
"decode_0001=0x%08x\n\n", codec_license_hash(BOARD_SERIAL, 0xf00bad34 ^ 0x30303031 /* '0001' */));
}

Show thread

I am gleefully ignorant of what the latest is with raspberry pi, but reading people's reactions to it makes me wonder if I should resurrect the #KestrelComputerProject under a new name and with a new set of goals.

trans woman in Michigan needs heating oil, forwarding her call for mutual aid 

a friend of ours is in a rough spot and needs to be able to keep her house from freezing @mutualaid
----
Hey, so I ran out of heating oil a couple days ago, running on eight or nine gallons of diesel right now, and my whole big attempt to fundraise myself out of the hole I'm in didn't actually get where it needed to be, I just kind of burned out and gave up trying after a month. The good news is that the price of oil has gone down a lot. Not filling it until it ran out, which I thought would work against me, actually means I need $1,067, instead of over $1,500. Still way higher than it would usually take to pay for oil, but I'm not complaining about a more than five hundred dollar drop in the price.

So I'm asking for money again. (Theoretical total to get where I won't need to beg going forward is circa $2,000, but I have no expectations of being able to raise that, so I'm just trying to cover the $1,067 for oil.)
paypal.com/paypalme/christhecy

Patreon & writing links re: trans woman in Michigan needs heating oil, forwarding her call for mutual aid 

gonna also plug her Patreon: patreon.com/chris_the_cynic/

and her writing blog: stealingcommas.blogspot.com/

she's made a lot of really good fiction, fanfic and original, and some excellent blog posts like stealingcommas.blogspot.com/20 about supply shortages early in the pandemic

she deserves a chance to live in a place that's hers and safe to inhabit, and we'd really appreciate any help people can give her

- Packbats πŸŽ’

Show thread

meta, rpi self-immolation, acab 

i suppose knowing up front is better than if it turned up a couple of weeks down the line, someone popping up and going "i remember that guy from when he nicked my mates"

still. the object lesson here is "mastodon is not a cop-friendly place" and before people start throwing accusations of bullying around, remember this:

NOBODY IS BORN A COP.

THINK ABOUT WHAT KIND OF PERSON CHOOSES TO HAVE, AND USE, VIOLENCE AND COERCION AGAINST THEIR FELLOW CITIZENS AS A FUNDAMENTAL ASPECT OF THEIR JOB.

...and then fuck off with that shit

@stavvers their greatest contribution to mastodon is uniting the tech nerds and the gay leftist shitposters against them

Show older
Dragon Style

I'm a grumpy queer dragon lady and this is my quiet cave for me and some friends.