Skip to content

Commit

Permalink
Handle hashed ElGamal compatibility
Browse files Browse the repository at this point in the history
Reverts 2301653

See #26
  • Loading branch information
shreyasminocha committed Jun 29, 2022
1 parent 221f75b commit a3ff195
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 26 deletions.
4 changes: 2 additions & 2 deletions src/electionguard/ballot/ciphertext-ballot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
import {ElGamalCiphertext} from '../core/elgamal';
import {ElementModQ} from '../core/group-common';
import {CryptoHashableElement, hashElements} from '../core/hash';
import {HashedElGamalCiphertext} from '../core/hashed-elgamal';
import {HashedElGamalCiphertextCompat} from '../core/hashed-elgamal';
import {
ElectionObjectBase,
OrderedObjectBase,
Expand Down Expand Up @@ -91,7 +91,7 @@ export class CiphertextContest
readonly cryptoHash: ElementModQ,
readonly proof: ConstantChaumPedersenProofKnownNonce,
readonly contestNonce: ElementModQ,
readonly extendedData?: HashedElGamalCiphertext
readonly extendedData?: HashedElGamalCiphertextCompat
) {}

get objectId(): string {
Expand Down
10 changes: 6 additions & 4 deletions src/electionguard/ballot/json.ts
Original file line number Diff line number Diff line change
Expand Up @@ -772,7 +772,9 @@ export class BallotCodecs {
ciphertext_accumulation: this.coreCodecs.elGamalCiphertextCodec,
crypto_hash: this.coreCodecs.elementModQCodec,
proof: this.coreCodecs.constantChaumPedersenProofKnownNonceCodec,
extended_data: D.nullable(this.coreCodecs.hashedElGamalCiphertextCodec),
extended_data: D.nullable(
this.coreCodecs.hashedElGamalCiphertextCompatCodec
),
}),
D.map(
s =>
Expand Down Expand Up @@ -810,7 +812,7 @@ export class BallotCodecs {
),
extended_data:
input.extendedData &&
this.coreCodecs.hashedElGamalCiphertextCodec.encode(
this.coreCodecs.hashedElGamalCiphertextCompatCodec.encode(
input.extendedData
),
nonce: null,
Expand Down Expand Up @@ -945,7 +947,7 @@ export class BallotCodecs {
nonce: this.coreCodecs.elementModQCodec,
proof: this.coreCodecs.constantChaumPedersenProofKnownNonceCodec,
extended_data: D.nullable(
this.coreCodecs.hashedElGamalCiphertextCodec
this.coreCodecs.hashedElGamalCiphertextCompatCodec
),
}),
D.map(
Expand Down Expand Up @@ -983,7 +985,7 @@ export class BallotCodecs {
),
extended_data:
input.extendedData &&
this.coreCodecs.hashedElGamalCiphertextCodec.encode(
this.coreCodecs.hashedElGamalCiphertextCompatCodec.encode(
input.extendedData
),
nonce:
Expand Down
4 changes: 2 additions & 2 deletions src/electionguard/ballot/submitted-ballot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
import {ElGamalCiphertext} from '../core/elgamal';
import {ElementModQ} from '../core/group-common';
import {CryptoHashableElement} from '../core/hash';
import {HashedElGamalCiphertext} from '../core/hashed-elgamal';
import {HashedElGamalCiphertextCompat} from '../core/hashed-elgamal';
import {
ElectionObjectBase,
matchingArraysOfAnyElectionObjects,
Expand Down Expand Up @@ -57,7 +57,7 @@ export class SubmittedContest
readonly ciphertextAccumulation: ElGamalCiphertext,
readonly cryptoHashElement: ElementModQ,
readonly proof: ConstantChaumPedersenProofKnownNonce,
readonly extendedData?: HashedElGamalCiphertext
readonly extendedData?: HashedElGamalCiphertextCompat
) {}

get objectId(): string {
Expand Down
19 changes: 19 additions & 0 deletions src/electionguard/core/hashed-elgamal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,25 @@ export class HashedElGamalCiphertext {
}
}

/*
* https://github.com/danwallach/ElectionGuard-TypeScript/issues/26
*/
export class HashedElGamalCiphertextCompat {
constructor(
readonly c0: ElementModP,
readonly c1: Uint8Array,
readonly c2: UInt256
) {}

equals(other: HashedElGamalCiphertextCompat): boolean {
return (
this.c0.equals(other.c0) &&
arraysEqual(this.c1, other.c1) &&
this.c2.equals(other.c2)
);
}
}

/**
* NIST 800-108-compliant key derivation function (KDF) state.
* [See the spec](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-108.pdf),
Expand Down
44 changes: 42 additions & 2 deletions src/electionguard/core/json.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ import {
uint8ArrayToBigInt,
uint8ArrayToHex,
} from './utils';
import {HashedElGamalCiphertext} from './hashed-elgamal';
import {
HashedElGamalCiphertext,
HashedElGamalCiphertextCompat,
} from './hashed-elgamal';
import {UInt256} from './uint256';
import * as Either from 'fp-ts/lib/Either';
import * as log from './logging';
Expand Down Expand Up @@ -83,6 +86,11 @@ export class CoreCodecs {
unknown,
HashedElGamalCiphertext
>;
readonly hashedElGamalCiphertextCompatCodec: C.Codec<
unknown,
unknown,
HashedElGamalCiphertextCompat
>;
readonly electionConstantsCodec: C.Codec<unknown, unknown, ElectionConstants>;
readonly electionContextCodec: C.Codec<unknown, unknown, ElectionContext>;
readonly encryptionDeviceCodec: C.Codec<unknown, unknown, EncryptionDevice>;
Expand Down Expand Up @@ -574,7 +582,7 @@ export class CoreCodecs {
pad: elementModPDecoder,
data: uInt8ArrayDecoder,
mac: uInt256Decoder,
numBytes: D.number, // TODO: remove
numBytes: D.number,
}),
D.map(s => {
return new HashedElGamalCiphertext(s.pad, s.data, s.mac, s.numBytes);
Expand All @@ -599,6 +607,38 @@ export class CoreCodecs {
hashedElGamalCiphertextDecoder,
hashedElGamalCiphertextEncoder
);

const hashedElGamalCiphertextCompatDecoder: D.Decoder<
unknown,
HashedElGamalCiphertextCompat
> = pipe(
D.struct({
pad: elementModPDecoder,
data: uInt8ArrayDecoder,
mac: uInt256Decoder,
}),
D.map(s => {
return new HashedElGamalCiphertextCompat(s.pad, s.data, s.mac);
})
);

const hashedElGamalCiphertextCompatEncoder: E.Encoder<
unknown,
HashedElGamalCiphertextCompat
> = {
encode: input => {
return {
pad: elementModPEncoder.encode(input.c0),
data: uInt8ArrayEncoder.encode(input.c1),
mac: uInt256Encoder.encode(input.c2),
};
},
};

this.hashedElGamalCiphertextCompatCodec = C.make(
hashedElGamalCiphertextCompatDecoder,
hashedElGamalCiphertextCompatEncoder
);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,7 @@
"extended_data": {
"pad": "7F9BD4BEFADB7C13932C65F3E2CEA7BCC781290DBCFD947C9F3F6449325D803D3BBC882A2FF546521759B98F58DF9BCD7FBBD82E2B82CECF552F135ACFCE5BDF85BDBCF7ED899619356AE7E0FC50551A160B3BD145A8DE5EB30A94B015B8B380A279E59A719AB9F7D11941B7B04FBE4FCB1883601DC13BFB807F6C4526A8B84D34E37D6BABF45EF91B965798E7EC0C95EC26276F26BB7D7BCC745DD0F4F514A85F425B9CE4AB352813530454493D84DB6B2CDB2B233FFF0ACABC49281EC69275D8E80C7E88DE3CE2FA0306908CB379B5521FD5BDD08F3877846BE8D4DCF75BC357CEF493DF033DCDBC59E1A7FD13333717DAA0ACB30C799E6AFE04A5D87EB7D70F6503F2D8B25ADAB589BE3924081C70A3C2FF796F38770E008525752110704C960BD19F055852FA4151C706FB2D764B65721001C480E94CB659D3503199736718E33D7DF3755924E19EBD3AE8CF8D97620F3A8FEF6241B70C4EDD4F42918C0EFD22C4D12FFE179F9BAB0FD69EC16F5ECCE3889BA0921705C0D76C9E7A0347B8057EFCAD6E30074BCC004D7072470245FD50CD2E30801C699FC8EF3CDC20F0956E807021547980B0E7870D53567DC6EB003013C08F12A2402CD9B1A08925DA701387C2306B951EB161005F195F1D1832F7D6C7E60452C47885B6BC4DFC71BC025DF96462D373116A0C41184A2FA55C5FE5FE001529A7A6BB8EDFF3A1DD56263D",
"data": "FFBA44CCE40F5CED4579B2A79A237974FDB38910B9D1506CD6CB26F7179A4D21BADF382DE0FE4059EB84E60EA4D194AEAD468BAC7A745899F68F3F5CD5B1E1D17B73DBF3C1F7AD09F02302AD3FCC33C13CFB6B98C51844A39FCBDAD8450FF5D93EC064B0563BEB9BEAF7FBE7D5C4333F2200AA3A9A5FAEF42B952EF13736217DC241F734245B710DEF7CBE5EB4C90423ED2BEF32D65E64A0990D7AB34D560CA51D9B979B6B8176A8347983B7CE07D3899D3E16064B989226786F2A0DB5338D7ED384D58183DFF6F0F49DFC1189C416AA9B45B4DF8D08E2A62C6874C6C4C4E6D546B8BB158E47A4960371A71EB148AAA1032DFB3E246C09A5B6E8CA0AFF42419B686F4C867F688901E7013F362E6C8B9A6BFF24727C1456D82873BDFECBA84C9F73181D87F35D6D2B65ACF4DDBA596D4D90D8D6451FFE5A59E65A9E52F91ACF09AC65A407EEDFBAF8CC44F5C1A5C27695EA5D75D064CA0DE72682515889692187C24CEE32C074FF3FA184EEEF7524DCE0D7D1640396466FB4C6A6CED3AED06168DA796D2751391D13EBFEA196715FB9307D6E6FA2070ACBA2F8618A46AA1D90AB7B2100AF65DCA2FA711209D3B309922D0AB140F67E3F3ACA43F381CF72290AAAB4B656578642D371FED62A60450876AFF498B7080988DF35F87A5BCA8D0CF665AAB45EF485DD563971E036C6D34BF5BCB7FD0BFA141F3377A7C75C6378494BDA",
"mac": "57AF184ABACDB8F34DCD7FCC8C5C9CD2351A5C5D696AAAF914CFF4B8FC1E4E57",
"numBytes": 256
"mac": "57AF184ABACDB8F34DCD7FCC8C5C9CD2351A5C5D696AAAF914CFF4B8FC1E4E57"
}
},
{
Expand Down Expand Up @@ -918,8 +917,7 @@
"extended_data": {
"pad": "D7723E6AE60975BCC089E2777802451EB76E7013AD4D8FF5FB83966E47E2C66C5B8CDC9D09B9E39BDC6C08FE62E465EA5E0ECD721335792D7649E75DD53492E33A404ADBEFCD9D760A4937C37BE9887FC6DAE5B28365CE42148564FA65C1AC7600C6DB98CAA0D1726653021E656B3D2FB491DFD3B461D8AD8A9B55C8BB22EF002045894ADD5F1ADA26D33D3BD66D00DEEF8E9EA41AC8D8E799B76D6BF14ED0338C6CC7A4A2FFA7AC235C8A7BF41E0052A4AB4DB8DDE8D3A9F7A5EA7AAB00B0F4B71EDDF2B59AF6EC6C55629F972466C3012A3646299EE87AA0F18AE21D18C28725394A1AB232F796B5B6C368B67F0728CE98EF024495470DCBB387973936698E6C2376D2B208F097F834FB396AE9C935C4704F4146CCCB023E00EF289193511884C0725896BA13B02BD483FCCE238C4D92086E5AE3ECBF564FF46D7FDBF9646E195F6A974B7D79CD5E719AF56C1B1AB63C7EEF7119B462C244E9F1FF06A078F6185DBE1AE0C33A45A1439B50D3DECEC428EA009ACA445FC70A5D0A9CBEB136FA54B4F1D9C0D024E1C3A0081F26F6F69A95A64294F3DA69AD54E17330A16F8701ABD0AAE7225E13B14108CF3000CD951469C85E71FC96C9A63D6251956A5B30B9A0C8E826FF0F267067424022DBC0B9D5670291CFF316F756BBE00152CA98F2FBE91E98D1E224AE421CCC3B49C8CD8EB2AEC454182595FDB6D58C015729BE1844",
"data": "B6C7CBC92A941B6270FBBBF0FDAA420225570941018C7799BD8CA0368705DFF193553421A249D394B5A26FC6AED3D6CB9CA198F607CF5721A8616420E33D66262283E60E9D047277E600ECADB48BCA3F1AD25DFD8C14C5EC94D1B4FB7CF721A7EB761F8B4DB5531F37661842532382A1FD555BBB9651BA42A4737F789F033084786A507E37A581049541B91E18EF3141A020838B13C9E695834C63DD6ECF85B5E8BD8B61215D622A092F9DC52B6F41BA768AA48F1170AF22ECFD61571A375FD0D6E9969CD83D8BE646D92BDC233AA57BAA0D3761E630FD1BE40360C195769C825536F44AE6C9E8A10248A4CE7B84A5C7C708AB631A29BDF09AA7E686DAF9412B7F5C893622B90EA345EF8CCB8A916D615E33922A4FEFAC0B3CA4627B1D3E10B417A4E5F1DAF7A3FDD28A3CDDAA6EACAF18C5B29C03DB601EE4EEED57F35EF359DF336FEA2112933314E2749CEECF87AD5A022009617B6BEC90C4DBC2B0C7E39A46F785DFF15943E3B9A2282554ABAE619E529AF9727CE1FB98B4046E8B5ADE51222F0DB8BD7E4E170BBDDC03609140E4642C81696BBF68E2F9675726C85508B64101185A5B7D8030860030E458BA5354A72D96DD446FFC055169A798368F81F534505D1BDF653C3DCFE7831707DB114F36F6981DEAA92A66403FC7E5F41E4C18971C7A946618F967D3A5210C0057C2A220C8E90D3DE66C93A7BB47B4C10C8595",
"mac": "AC506778EE0655E798ADF43D7D7FABECFAEA70FE7DE844A86876296DD0058F3F",
"numBytes": 256
"mac": "AC506778EE0655E798ADF43D7D7FABECFAEA70FE7DE844A86876296DD0058F3F"
}
},
{
Expand Down Expand Up @@ -1113,8 +1111,7 @@
"extended_data": {
"pad": "BB37E8D8D2629E8B113E1014C2FAEE3622C106E35B5E0C209C73F410C18DB732E780FAB6A7E5E125B2A4207207D4F61982F4658FEBFA09F7932FEB7D17643D8EC14FFD3AD0A4F311F33C7647560E519257869B0215AFC4C0F1EA90CB2698BE24374E7755549C11C71ED8783B333D29E1698B088C3AADBE134F9B392BEAC6DFDA6049B11793C709B05FB38DAF8F12BBE390EEC4E2921D09701C4EA770D43B1FADB25FF7FEA4C4EB348375612F6949CB7885D6FE0CE4D56738814AEFB10ACFCD16443166FD8BE58656DDCA7D817A96F28F2EC36154C1DDE66AC81653AB2CF40D608466AB83D8D2186FE8BDB266580A1ADC4641D43C1B33225143677C9873093C0390BFE32D51F2A4BCFA4420B1905A739B360B87A31B32CD82FEA9E768CA226AA88B531872A70F2F64FEF712E06CDE9A9FCB8041B8F97B789CC5F7BE6142E75095DCF717935C6C2266F322CFBA78E093A75BD3BCB2608764B81AF9FA3CAC0DE262704F47E1A4D0A3BCC4F4081D9B11E19D903A134F76F000A8B7FF13958FC3DA3C3CF694845B17E9D6B21AE35AE204548F93F103A7F4E8B196EAAB919487957837BB1CCF0A8A59468BD745B72F91F23BC53443CE88ABC619AECC12912D151FE6B72D1BDDB0BD300C5BD368CB61080C07423A7E2EBE0B43984594582CE63989EE8B87A16582FB66908D88F4E3A176FCD1F58C5DACBABEA256722E71319BA4088256",
"data": "96188B834DF52B581570341301FB7A60BC0E7820F4C158FE99AB0772490C55D009C6559EAA28F2D9625CD6B86ECCE3555E12BC76F4BAFD201FF6CB6D14B430E5DA563FE6B98D380D6E3EDD96938CF86063F774ABB2385766D6F727D365CDA8A68C2778CCAC7BC076A219E551B8987BB757B310DB4372A03DA8D7982DC607181AF1A14263BA890D637B2F08283E5F4B07BB84BF16335E6367D867EC3D01262A7E8AE67607226E3602873CC3CEFB0A0748FDC6723C687AE5529C8C360BF91AA2D4E8FD2AA982EC2A1A9426B73A00163116ACF35E78C5D3EE7FF5CC4C9ACF59F33791C231537D065AD8557AD29E0749CB4EF5BA6080BAA19FF09FE9EFACE9C448821D399122B898EAF72D6850AA163EED7A5BD8372C5242ABE5FF3CBA1CE3FA77AC8D36C5DD3095F43EF0D743FC3631CA27950067101952CE05E1E804D5C3134CC4A4DC91CEEAAA3AC6CC0576DBC33C9B26561EE088FBBE2EA76F2D3FF0A379BDDADE672DF303AB14D109FB3193B4AC6C8B5B25F2F39D3DB08C0C0952AFC41D5B4742B342BC526AB23E20241BF6A3D8A8E238E15A0528E162C6C8663C127459FE3F326703B2E24D46DB4C2897DF3ED11BC4CC2FF1A724102B39F041EE115D4E83F7F4D8A9C96EA68F028D44377D8B5E6ACA8E70CA8FEB8C0348C21136CDB1439424B5BEAA8D1356E6B8AD65F8B9683AA120EB320AB976034BC6C6E74AD967D751DA",
"mac": "B203F9B7E4FD2F917744B2F02607588294CF77261A9D73199B57F0816DA553B7",
"numBytes": 256
"mac": "B203F9B7E4FD2F917744B2F02607588294CF77261A9D73199B57F0816DA553B7"
}
}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,7 @@
"extended_data": {
"pad": "7F9BD4BEFADB7C13932C65F3E2CEA7BCC781290DBCFD947C9F3F6449325D803D3BBC882A2FF546521759B98F58DF9BCD7FBBD82E2B82CECF552F135ACFCE5BDF85BDBCF7ED899619356AE7E0FC50551A160B3BD145A8DE5EB30A94B015B8B380A279E59A719AB9F7D11941B7B04FBE4FCB1883601DC13BFB807F6C4526A8B84D34E37D6BABF45EF91B965798E7EC0C95EC26276F26BB7D7BCC745DD0F4F514A85F425B9CE4AB352813530454493D84DB6B2CDB2B233FFF0ACABC49281EC69275D8E80C7E88DE3CE2FA0306908CB379B5521FD5BDD08F3877846BE8D4DCF75BC357CEF493DF033DCDBC59E1A7FD13333717DAA0ACB30C799E6AFE04A5D87EB7D70F6503F2D8B25ADAB589BE3924081C70A3C2FF796F38770E008525752110704C960BD19F055852FA4151C706FB2D764B65721001C480E94CB659D3503199736718E33D7DF3755924E19EBD3AE8CF8D97620F3A8FEF6241B70C4EDD4F42918C0EFD22C4D12FFE179F9BAB0FD69EC16F5ECCE3889BA0921705C0D76C9E7A0347B8057EFCAD6E30074BCC004D7072470245FD50CD2E30801C699FC8EF3CDC20F0956E807021547980B0E7870D53567DC6EB003013C08F12A2402CD9B1A08925DA701387C2306B951EB161005F195F1D1832F7D6C7E60452C47885B6BC4DFC71BC025DF96462D373116A0C41184A2FA55C5FE5FE001529A7A6BB8EDFF3A1DD56263D",
"data": "FFBA44CCE40F5CED4579B2A79A237974FDB38910B9D1506CD6CB26F7179A4D21BADF382DE0FE4059EB84E60EA4D194AEAD468BAC7A745899F68F3F5CD5B1E1D17B73DBF3C1F7AD09F02302AD3FCC33C13CFB6B98C51844A39FCBDAD8450FF5D93EC064B0563BEB9BEAF7FBE7D5C4333F2200AA3A9A5FAEF42B952EF13736217DC241F734245B710DEF7CBE5EB4C90423ED2BEF32D65E64A0990D7AB34D560CA51D9B979B6B8176A8347983B7CE07D3899D3E16064B989226786F2A0DB5338D7ED384D58183DFF6F0F49DFC1189C416AA9B45B4DF8D08E2A62C6874C6C4C4E6D546B8BB158E47A4960371A71EB148AAA1032DFB3E246C09A5B6E8CA0AFF42419B686F4C867F688901E7013F362E6C8B9A6BFF24727C1456D82873BDFECBA84C9F73181D87F35D6D2B65ACF4DDBA596D4D90D8D6451FFE5A59E65A9E52F91ACF09AC65A407EEDFBAF8CC44F5C1A5C27695EA5D75D064CA0DE72682515889692187C24CEE32C074FF3FA184EEEF7524DCE0D7D1640396466FB4C6A6CED3AED06168DA796D2751391D13EBFEA196715FB9307D6E6FA2070ACBA2F8618A46AA1D90AB7B2100AF65DCA2FA711209D3B309922D0AB140F67E3F3ACA43F381CF72290AAAB4B656578642D371FED62A60450876AFF498B7080988DF35F87A5BCA8D0CF665AAB45EF485DD563971E036C6D34BF5BCB7FD0BFA141F3377A7C75C6378494BDA",
"mac": "57AF184ABACDB8F34DCD7FCC8C5C9CD2351A5C5D696AAAF914CFF4B8FC1E4E57",
"numBytes": 256
"mac": "57AF184ABACDB8F34DCD7FCC8C5C9CD2351A5C5D696AAAF914CFF4B8FC1E4E57"
}
},
{
Expand Down Expand Up @@ -918,8 +917,7 @@
"extended_data": {
"pad": "D7723E6AE60975BCC089E2777802451EB76E7013AD4D8FF5FB83966E47E2C66C5B8CDC9D09B9E39BDC6C08FE62E465EA5E0ECD721335792D7649E75DD53492E33A404ADBEFCD9D760A4937C37BE9887FC6DAE5B28365CE42148564FA65C1AC7600C6DB98CAA0D1726653021E656B3D2FB491DFD3B461D8AD8A9B55C8BB22EF002045894ADD5F1ADA26D33D3BD66D00DEEF8E9EA41AC8D8E799B76D6BF14ED0338C6CC7A4A2FFA7AC235C8A7BF41E0052A4AB4DB8DDE8D3A9F7A5EA7AAB00B0F4B71EDDF2B59AF6EC6C55629F972466C3012A3646299EE87AA0F18AE21D18C28725394A1AB232F796B5B6C368B67F0728CE98EF024495470DCBB387973936698E6C2376D2B208F097F834FB396AE9C935C4704F4146CCCB023E00EF289193511884C0725896BA13B02BD483FCCE238C4D92086E5AE3ECBF564FF46D7FDBF9646E195F6A974B7D79CD5E719AF56C1B1AB63C7EEF7119B462C244E9F1FF06A078F6185DBE1AE0C33A45A1439B50D3DECEC428EA009ACA445FC70A5D0A9CBEB136FA54B4F1D9C0D024E1C3A0081F26F6F69A95A64294F3DA69AD54E17330A16F8701ABD0AAE7225E13B14108CF3000CD951469C85E71FC96C9A63D6251956A5B30B9A0C8E826FF0F267067424022DBC0B9D5670291CFF316F756BBE00152CA98F2FBE91E98D1E224AE421CCC3B49C8CD8EB2AEC454182595FDB6D58C015729BE1844",
"data": "B6C7CBC92A941B6270FBBBF0FDAA420225570941018C7799BD8CA0368705DFF193553421A249D394B5A26FC6AED3D6CB9CA198F607CF5721A8616420E33D66262283E60E9D047277E600ECADB48BCA3F1AD25DFD8C14C5EC94D1B4FB7CF721A7EB761F8B4DB5531F37661842532382A1FD555BBB9651BA42A4737F789F033084786A507E37A581049541B91E18EF3141A020838B13C9E695834C63DD6ECF85B5E8BD8B61215D622A092F9DC52B6F41BA768AA48F1170AF22ECFD61571A375FD0D6E9969CD83D8BE646D92BDC233AA57BAA0D3761E630FD1BE40360C195769C825536F44AE6C9E8A10248A4CE7B84A5C7C708AB631A29BDF09AA7E686DAF9412B7F5C893622B90EA345EF8CCB8A916D615E33922A4FEFAC0B3CA4627B1D3E10B417A4E5F1DAF7A3FDD28A3CDDAA6EACAF18C5B29C03DB601EE4EEED57F35EF359DF336FEA2112933314E2749CEECF87AD5A022009617B6BEC90C4DBC2B0C7E39A46F785DFF15943E3B9A2282554ABAE619E529AF9727CE1FB98B4046E8B5ADE51222F0DB8BD7E4E170BBDDC03609140E4642C81696BBF68E2F9675726C85508B64101185A5B7D8030860030E458BA5354A72D96DD446FFC055169A798368F81F534505D1BDF653C3DCFE7831707DB114F36F6981DEAA92A66403FC7E5F41E4C18971C7A946618F967D3A5210C0057C2A220C8E90D3DE66C93A7BB47B4C10C8595",
"mac": "AC506778EE0655E798ADF43D7D7FABECFAEA70FE7DE844A86876296DD0058F3F",
"numBytes": 256
"mac": "AC506778EE0655E798ADF43D7D7FABECFAEA70FE7DE844A86876296DD0058F3F"
}
},
{
Expand Down Expand Up @@ -1113,8 +1111,7 @@
"extended_data": {
"pad": "BB37E8D8D2629E8B113E1014C2FAEE3622C106E35B5E0C209C73F410C18DB732E780FAB6A7E5E125B2A4207207D4F61982F4658FEBFA09F7932FEB7D17643D8EC14FFD3AD0A4F311F33C7647560E519257869B0215AFC4C0F1EA90CB2698BE24374E7755549C11C71ED8783B333D29E1698B088C3AADBE134F9B392BEAC6DFDA6049B11793C709B05FB38DAF8F12BBE390EEC4E2921D09701C4EA770D43B1FADB25FF7FEA4C4EB348375612F6949CB7885D6FE0CE4D56738814AEFB10ACFCD16443166FD8BE58656DDCA7D817A96F28F2EC36154C1DDE66AC81653AB2CF40D608466AB83D8D2186FE8BDB266580A1ADC4641D43C1B33225143677C9873093C0390BFE32D51F2A4BCFA4420B1905A739B360B87A31B32CD82FEA9E768CA226AA88B531872A70F2F64FEF712E06CDE9A9FCB8041B8F97B789CC5F7BE6142E75095DCF717935C6C2266F322CFBA78E093A75BD3BCB2608764B81AF9FA3CAC0DE262704F47E1A4D0A3BCC4F4081D9B11E19D903A134F76F000A8B7FF13958FC3DA3C3CF694845B17E9D6B21AE35AE204548F93F103A7F4E8B196EAAB919487957837BB1CCF0A8A59468BD745B72F91F23BC53443CE88ABC619AECC12912D151FE6B72D1BDDB0BD300C5BD368CB61080C07423A7E2EBE0B43984594582CE63989EE8B87A16582FB66908D88F4E3A176FCD1F58C5DACBABEA256722E71319BA4088256",
"data": "96188B834DF52B581570341301FB7A60BC0E7820F4C158FE99AB0772490C55D009C6559EAA28F2D9625CD6B86ECCE3555E12BC76F4BAFD201FF6CB6D14B430E5DA563FE6B98D380D6E3EDD96938CF86063F774ABB2385766D6F727D365CDA8A68C2778CCAC7BC076A219E551B8987BB757B310DB4372A03DA8D7982DC607181AF1A14263BA890D637B2F08283E5F4B07BB84BF16335E6367D867EC3D01262A7E8AE67607226E3602873CC3CEFB0A0748FDC6723C687AE5529C8C360BF91AA2D4E8FD2AA982EC2A1A9426B73A00163116ACF35E78C5D3EE7FF5CC4C9ACF59F33791C231537D065AD8557AD29E0749CB4EF5BA6080BAA19FF09FE9EFACE9C448821D399122B898EAF72D6850AA163EED7A5BD8372C5242ABE5FF3CBA1CE3FA77AC8D36C5DD3095F43EF0D743FC3631CA27950067101952CE05E1E804D5C3134CC4A4DC91CEEAAA3AC6CC0576DBC33C9B26561EE088FBBE2EA76F2D3FF0A379BDDADE672DF303AB14D109FB3193B4AC6C8B5B25F2F39D3DB08C0C0952AFC41D5B4742B342BC526AB23E20241BF6A3D8A8E238E15A0528E162C6C8663C127459FE3F326703B2E24D46DB4C2897DF3ED11BC4CC2FF1A724102B39F041EE115D4E83F7F4D8A9C96EA68F028D44377D8B5E6ACA8E70CA8FEB8C0348C21136CDB1439424B5BEAA8D1356E6B8AD65F8B9683AA120EB320AB976034BC6C6E74AD967D751DA",
"mac": "B203F9B7E4FD2F917744B2F02607588294CF77261A9D73199B57F0816DA553B7",
"numBytes": 256
"mac": "B203F9B7E4FD2F917744B2F02607588294CF77261A9D73199B57F0816DA553B7"
}
}
],
Expand Down
Loading

0 comments on commit a3ff195

Please sign in to comment.