mirror of
https://github.com/AtHeartEngineer/sss.git
synced 2026-01-07 20:13:49 -05:00
36 lines
998 B
C
36 lines
998 B
C
#include "sss.h"
|
|
#include <assert.h>
|
|
#include <string.h>
|
|
|
|
int main(void)
|
|
{
|
|
unsigned char data[sss_MLEN] = { 42 }, restored[sss_MLEN];
|
|
sss_Share shares[256];
|
|
int tmp;
|
|
|
|
/* Normal operation */
|
|
sss_create_shares(shares, data, 1, 1);
|
|
tmp = sss_combine_shares(restored, (const sss_Share*) shares, 1);
|
|
assert(tmp == 0);
|
|
assert(memcmp(restored, data, sss_MLEN) == 0);
|
|
|
|
/* A lot of shares */
|
|
sss_create_shares(shares, data, 255, 255);
|
|
tmp = sss_combine_shares(restored, (const sss_Share*) shares, 255);
|
|
assert(tmp == 0);
|
|
assert(memcmp(restored, data, sss_MLEN) == 0);
|
|
|
|
/* Not enough shares to restore secret */
|
|
sss_create_shares(shares, data, 100, 100);
|
|
tmp = sss_combine_shares(restored, (const sss_Share*) shares, 99);
|
|
assert(tmp == -1);
|
|
|
|
/* Too many secrets should also restore the secret */
|
|
sss_create_shares(shares, data, 200, 100);
|
|
tmp = sss_combine_shares(restored, (const sss_Share*) shares, 200);
|
|
assert(tmp == 0);
|
|
assert(memcmp(restored, data, sss_MLEN) == 0);
|
|
|
|
return 0;
|
|
}
|