Accepting request 495736 from home:AndreasStieger

cryto library for distributed card games

OBS-URL: https://build.opensuse.org/request/show/495736
OBS-URL: https://build.opensuse.org/package/show/games/libTMCG?expand=0&rev=1
This commit is contained in:
Matthias Mailänder 2017-05-25 15:16:34 +00:00 committed by Git OBS Bridge
commit de055ed5e2
7 changed files with 753 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
libTMCG-1.3.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4a88d88207ecc746e048ca71f7c911f4178e4c130c4bd163a3859614bd89e274
size 1026182

6
libTMCG-1.3.0.tar.gz.sig Normal file
View File

@ -0,0 +1,6 @@
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQR29zARMp0n2418P5dPWE64+yvhTwUCWRdzCAAKCRBPWE64+yvh
T/HmAJ9A8Kb0HKWis0bDjjd9YGFDLOxIKACeLA8+0mlB/rDb9fz9+m5r7OUH9Rw=
=kwXo
-----END PGP SIGNATURE-----

46
libTMCG.changes Normal file
View File

@ -0,0 +1,46 @@
-------------------------------------------------------------------
Wed May 17 20:08:23 UTC 2017 - astieger@suse.com
- update to 1.3.0:
* remove some issues found by coverity scan
* add undocumented protocols and experimental support for
distributed key generation
* Verifiable setup of VTMF group generator
* For some advanced protocols (e.g. Groth's shuffle) with more
than two parties the distributed coin flipping protocol (EDCF)
should be used.
- includes changes from 1.2.0:
* The default security parameters have been updated to current
state of the art
* The complexity of hash function g() was improved
* Non-interactive versions of the verifiable shuffle resp.
rotation protocol provide more efficient instantiations with
soundness based on the well-known Fiat-Shamir heuristic
* stengthen interactive versions of the protocols against
malicious verifiers by coin flipping between prover and
verifier
* include protocol for reliable broadcast
* improved documentation
- includes changes from 1.1.3:
* VRHE scheme provides an efficient HVZK argument for cyclic
shuffle
- includes changes from 1.1.2:
* Small bugfixes have been applied in order to compile with gcc
4.3.x
-------------------------------------------------------------------
Sun Jan 25 16:54:43 UTC 2015 - andreas.stieger@gmx.de
- verify source signature
-------------------------------------------------------------------
Sat Mar 31 16:33:31 UTC 2012 - andreas.stieger@gmx.de
- update to 1.1.2
- fix most warnings and errors for current openSUSE standards
-------------------------------------------------------------------
Thu May 10 00:00:00 UTC 2007 - toni@links2linux.de
- Initial package 1.1.1

514
libTMCG.keyring Normal file
View File

@ -0,0 +1,514 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.6 (GNU/Linux)
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
iACDPo00G+c7hkXAZ/UykWsF0HISFS/5kGotFXm7XiLZcK5Iw804lwgNKTta2bmG
i2n6lXsuMUGNWuIP1+MU+VytUWbReUIqyipEmsWjFLGEl3GnA9SIY1ueVzLuG93b
3OBt0SkR6VUooz1Vg0IwZEKIRgQTEQIABgUCQFV//gAKCRDJ2NNvZxI1IUS5AJ0Q
4/q7gF5m+L+Ie0tN1M7phBoSuQCfUuTpRBHK3Xx2XgthNLTclvzvENmIRgQTEQIA
BgUCQFXeHwAKCRC/g4FDuop18Y6XAJ4+llA50ppVlOytgOUiATRNQCcoxQCfYZjn
9Im2ZbYpYMKKhwUlw9EdBCeIRgQTEQIABgUCQFYkdgAKCRApgKeMm3UqbcKVAJ0T
yBFRaTP/7seZCNkxgS3IcfmBRACgjFYB58A5JjhqoFFo5kvIrDrnKwWIRgQTEQIA
BgUCQFHkbQAKCRAsQzrCfOO2T/RIAJwK6aAfskKMd34vfRJOuGz+DUEWGgCfZwD3
pL06pwcf7u1K1WTdR97MH1qIRgQTEQIABgUCQE8srAAKCRBFwCFHaavdVEj2AKCD
G4V1+ddZTfc1P39DGEj/Mh0egwCfYpm7WXrBZZVAdWWThMEpJ2C5AVaIRgQTEQIA
BgUCQFipRgAKCRAR9MQes/uuMyKoAJ9BufyVksHTi8P0Ka4RAnWZGnyeqgCfUPa7
u7HifoRTQJnR3ArSu06c7WeIRgQTEQIABgUCQFitOgAKCRAdh+VJc2R8/0NFAJ9B
AjH70afmmdjIRPMtFBS6JvaU/ACfTaq5CbOTlyIwpkNbxR0Fy4dNKV6JAdcEEwEC
AMEFAkBeESmGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0
cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rl
cy43NkY3MzAxMTMyOUQyN0RCOEQ3QzNGOTc0RjU4NEVCOEZCMkJFMTRGLmFzYyIz
Gmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3Yx
LjEvAAoJEBmiaAmIOP2UMbYIAIKg5ha8fl8kO+GFlWzgm6XjxoMA+XGem26uAlfz
gUPn0a+jOg7OEq+s3o53Ow0pUzF8592mKTYEr7KBvtjDyTKc86bqSMN0xe+CgNiQ
ZGVuKTrFNYkFhw8ILfwgq6kDICx7BOF9N7Cw/dYDZ4wypuFNfqhqBvtogX3r7baR
pGd4itik9/U+5K2DltHAQiC73hhz8FQzkq7kg5rtsQCFFJ99cLOU+ogN1hSL4r2E
0dahmkX8tN7dMcAHXKfKvm36dyOeoKX5Bwrqvk2fWO5TsKh0S/6YPOHTG/Odskzr
z6Tzwt2eM2VCYfGBLZfxvAOqKuekrAz2gV8xR3+dqW0tmV2JAQEEExECAMEFAkBe
EX+GFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3
dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy43NkY3
MzAxMTMyOUQyN0RCOEQ3QzNGOTc0RjU4NEVCOEZCMkJFMTRGLmFzYyIzGmh0dHA6
Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJ
EKseS2BGdWseKc4AnAykjKUMi/kUN12Z6xUQzo8uMZSaAJwNpW2TLMHKt6mCgfCs
RjIwqnPtyYhGBBMRAgAGBQJAYzKXAAoJEChjvWc1UYaqAdIAoJ1X2y9ACAlOp1Pm
Q9gKmJU0ZkYGAJ9mwVplHgnmx/dmCEUhfAaA0UBH+ohGBBARAgAGBQJAZnqoAAoJ
EMpw3JjCCQpiTncAoPJ7BrM38P/TDChsmrnoSQ0tlLRMAKDtwmV9JDQmgax/QMNU
nCEwAukUDohGBBMRAgAGBQJAZokRAAoJEBsn11L6SaYa0ogAni1L3IZkVyfVdwNH
y7RYs2262W7tAKCErs7wFEpS8ju6nCPZfpPSNAobUIhGBBARAgAGBQJAf6CkAAoJ
ENiHrgjVaqabSYEAoKEtrT8OKSKBybrYxMZzEl6K27AJAKCqZIOHRCV3rxa6Oghh
e2JAGKqZEYhGBBMRAgAGBQJAfrb/AAoJEN1upz5vzaL8UycAnjoPohFT9S9+B02E
ueaaGzmziFwdAJ9L1BDMGRgKJDRjhxM4rzHfwr+DhYhGBBMRAgAGBQJAgXGAAAoJ
EHStrQFg+W6NEbYAniwfWcC4J4/+WiUnUIJtleQW+RnvAKCdewhVLkqW46HelUCQ
fq+jBGGJJ4kBHAQQAQEABgUCQIOVnQAKCRDggEBI3LCR5ejsCADU22LjfmcRtF7b
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
thFaY6C9oM8sHvgza1CXqENhcC2heZczcrG5gpZ6X45oHLoIbCZLwBOtvySZmrtC
YB81t30HLn5rEGdigHaUDXohHAtEYcufVIGHzBsKDapDz9tnsdjBSRNXpV6xXzEX
CTvravEch86YPCNEYmKHr9iTkit2ZO71gZEp77+uJFraDji7nj5JFzPdbU1V5Rt1
4X3w9MTzW5GrhIfBxcxEzPJpWC3kzMLjziezSaDMffx8v/QXLOBECsycPUxkiOOY
SPnE9j90tixtJf0BRnADUuGrxvkc3dhm2qfajpLrNdMRli5kC4AsfXXl+BDnPFvn
N63Ckw9+gSQXsM1/wYvl7AXTGVOE4Nc+V8BrA8tRJIxRiF06ndTAasRLLHMaQkmZ
QPRauZwhSHTqxFyqUZcNNde9sdYKJh8iujC4d2gBH3NZz3jCIRRxJPNZ+qW5CMjV
bJdXRRBQzoFPxgIMeEqcytVDsN7eE1HKyowacCDBJRQ50piHjiogwohGBBMRAgAG
BQJAVd4hAAoJEL+DgUO6inXxGy4AoKYAHMKfgIUN8qALJU9CqKMBNL4FAKCm43VA
mPccXmWfuWOIc9o8hN/Io4hGBBMRAgAGBQJAUeRtAAoJECxDOsJ847ZPW4YAn010
7heapc2dIIRbjb1wkiIg1ZagAKCcLQ0+wFYAJHWe9ML8ocgz+qFHp4hGBBMRAgAG
BQJATyywAAoJEEXAIUdpq91U9NMAnA4pWkupN1/d5Xhd+PchAY6qMpSEAJ4oWBNL
0NbSdl7LRg501igSK2X+hYhGBBMRAgAGBQJAWKlMAAoJEBH0xB6z+64z8wIAoJkN
z3/whVMONH1eOe17xQD6ObkwAJwJqKuaMCzPQLaGWEt/HaLaoL8jdYhGBBMRAgAG
BQJAWK08AAoJEB2H5UlzZHz/lZgAnAhaRWv5Xx2DFyY5zEEKQ+Oh3QafAJ492pTT
UTNFX8atKfC2h/Q9jou9IIkB1wQTAQIAwQUCQF4RL4YUgAAAAAAaAGNzaWduYXR1
cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2Nv
bnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLjc2RjczMDExMzI5RDI3REI4RDdDM0Y5
NzRGNTg0RUI4RkIyQkUxNEYuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35i
Yi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZSi3wf/TA/z3MwF
XmlV5TYPPDhm0Zf5HTbkzBDPU3M00ioNRUeC1D+VJrK3MI+GwTP/r/NxXSNp5nnb
006+a4+BJZ3Zkc/3gQxiTvKlAoQ2k4si+T3XBgjKtyWcZhgaKMDlLPH5FnqhEsLi
PQDuLMIEw3PMyJiDVsPAv1vCBt3ZjV6XzXaREiORvMBN3A2ghm1534CqsdZ++g3h
IPATSTgbSKbj2vXCRPW2JWhztMFD36q+Rtcbpr6euILfrTfc1fuSOPF0Di9tTkGE
vvrVN7Zh/sLB/Mp4xMn6Jy6ATWk9mFUJcNThkxU6EcUTdcvaU74ZC9PtZfYlMVvl
wr6ycE979vik8YkBAQQTEQIAwQUCQF4RgoYUgAAAAAAaAGNzaWduYXR1cmUtbm90
ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3Qv
cGdwL3NpZ25pbmdzL25vdGVzLjc2RjczMDExMzI5RDI3REI4RDdDM0Y5NzRGNTg0
RUI4RkIyQkUxNEYuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250
YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQqx5LYEZ1ax5CZQCfRZW13j+KRHYCxNxm
YIab/eo2wiYAn1/Zo7kDk+PoW2/NJ66OI84xwf55iEYEEBECAAYFAkBmerAACgkQ
ynDcmMIJCmJu1QCgqOxGcRTJ8OAQjVALz6cLr9idesoAoJU4eBgeD5z+GTqn/nqE
AnNiETH2iEYEExECAAYFAkBmiRMACgkQGyfXUvpJphqFzwCfZrYmCGn/EPHxvLVi
aYp7+IcoME4AnAiQIwuiQ0O//3pdBeRvA4g7RL9/iEYEExECAAYFAkB+twQACgkQ
3W6nPm/NovwcVQCgiUn+sl0bAmLP0ePf2caAbmKJ0EIAn0BlaNjvzn4hT+EQrMWH
ZYbba1k6iEYEExECAAYFAkCBcYAACgkQdK2tAWD5bo27vwCeMN6xZjAdvM+nc+mk
tG52RoUIrpoAnj/EQpP1ESGRoEOiOyGp/K53ZbQAiEkEMBECAAkFAkCDtVICHQAA
CgkQT1hOuPsr4U8fUACeJ7UEXaWPaUQ001d4OL9UO1EhSCYAnAxqI8MWtFujkJlu
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
1y2s8SboKM9cGsNwTZHBM530qO1lTrtWT/OihVpw9XQe6RyV7pj08YChKmtDDR0u
ZagU/RHdBmmWeUmvXDtWy1UuHTaOkNr43utKZfmrx1++FkHCEt+RbiFH1CenNl4L
N7ZQi+P0/KjpLmLWCUgAC4WmHbLvwtgyapk2sWMufuqstMav9N9ccgn9yIW7ZwWA
zovgiVgfpCIx4Tu/7xWrlmK+A8iGkCQ1iX2ZL2FMEaDCE+p00ApgObhX5OxtwOG1
ZOCkmUxx/xzlN8MuuQaErSJghb9cLHIP+8Od76XYfxhXVRX9buasOO6tE+5yrKCj
1Usve3wVRNziiEYEExECAAYFAkBVgBgACgkQydjTb2cSNSH+kQCfShlPAj1v+pTh
FdeYfrzBhmyYvcUAnA6DrHLwTAXTqE5EgIwPr62/xqLoiEYEExECAAYFAkBV3iEA
CgkQv4OBQ7qKdfF0WgCeLKm7VMLcuuNq2nLah8GkugF9QGAAoKO/WWUot60c7N0G
N8PJLPUYDEE3iEYEExECAAYFAkBR5G0ACgkQLEM6wnzjtk8HtACfbEVVTH+NmhB7
WZNbNy+sg5CxdfoAn3rYjmBf2XmIZ4eP6WSQWPbki0OpiEYEExECAAYFAkBPLLAA
CgkQRcAhR2mr3VSwmwCcDE9ErKl/Gk91l7LbtGrF7XJ4dCoAn3BUMPof/3qYGpGn
8ZHEWv2mGJ5biEYEExECAAYFAkBYqUwACgkQEfTEHrP7rjNNBQCgrpHoqXXDQsND
meHvxVhvWWQ3Y7UAoIFypAMktFXSlSSFc/4j0QR9YHMpiEYEExECAAYFAkBYrTwA
CgkQHYflSXNkfP/v8wCfUCEaQZv6nnyeLAKy457cV6oeBCwAnRdhyWSqktWB8trK
/Mjc+7PnpWB0iQHXBBMBAgDBBQJAXhEvhhSAAAAAABoAY3NpZ25hdHVyZS1ub3Rl
c0BwZW5ndWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w
Z3Avc2lnbmluZ3Mvbm90ZXMuNzZGNzMwMTEzMjlEMjdEQjhEN0MzRjk3NEY1ODRF
QjhGQjJCRTE0Ri5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRh
Y3QvcGdwL3BvbGljeS92MS4xLwAKCRAZomgJiDj9lKVBCADZ3fO8hs/I3dWoKFz0
+RWTysnFhVAGBKsicxdVWbrfXCDJmUbs8G7TYNpQA3gc2iYxq3MJPkSMBX9z8PaO
B+V20Y0IG3cJyZ+Cpph8QZviO6jQJTwif/uZQchblzy+uZFcqUCLYPkhCHBv8nqs
5hauyVsxze66a3CUaw/Soc4uGzJ7hki/eXuNZebqS3ycRpM/7M/mNOQNGGUDhMb7
t/RBg+w1gEJBFQGKCDRZ/9fMgR1ct1rwPYgvznseVnT5dpgv6G7VARwwURvRnnBF
KURgZ4NYSfYe4ru8eOoy1+9W+hQGhhYKG4c6g71Fh0ClIda4hKLw9DJQIsVCxe7n
RAT/iQEBBBMRAgDBBQJAXhGChhSAAAAAABoAY3NpZ25hdHVyZS1ub3Rlc0BwZW5n
dWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3Avc2ln
bmluZ3Mvbm90ZXMuNzZGNzMwMTEzMjlEMjdEQjhEN0MzRjk3NEY1ODRFQjhGQjJC
RTE0Ri5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdw
L3BvbGljeS92MS4xLwAKCRCrHktgRnVrHokCAKCcTZVbwigIeDP8axgG9o/RCE0D
OgCePMJjbncNSbIZJTfp3XW7qSnZejeIRgQTEQIABgUCQGMymAAKCRAoY71nNVGG
qgoKAJ48LdYjn6AEWq6VfXWdON9Owgw2wgCbBX7R86W398GsFMNJ2WA61qb6a9mI
RgQQEQIABgUCQGZ6sAAKCRDKcNyYwgkKYlKoAKCQgIpopv4asGpEVKZ45LoLRARb
AgCeNBlvkrR5AIpzJhF9y2TNPc+sbYmIRgQTEQIABgUCQGaJEwAKCRAbJ9dS+kmm
GvheAJ0aJbcXVWMHmpX7WOy12yEhZwmuhACbBAm/ppwz09iuyaqUU8pTZTUTJ7iI
RgQTEQIABgUCQH63BAAKCRDdbqc+b82i/J+FAJ9LKcg/52uZ2bo1V10kc8aiG96W
wgCeI2ej6l7SDktv3kza9SE2i2lRK7uIRgQTEQIABgUCQIP1zQAKCRB0ra0BYPlu
jY0eAKDqeK20TlWscO2O/HcxedGKZae9OQCffdlEnKGmtbC0i8icrG8G+dMJ7I6I
RgQTEQIABgUCQJDlRgAKCRBjVTjfc24zuoQgAJsExSBEIY808mDPVfhfq3BH78mS
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
v5oo1MHwHq+PpQ==
=n02/
-----END PGP PUBLIC KEY BLOCK-----

160
libTMCG.spec Normal file
View File

@ -0,0 +1,160 @@
#
# spec file for package libTMCG
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2012 Andreas Stieger <andreas.stieger@gmx.de>
# Copyright (c) 2007 pc2pus <toni@links2linux.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define sover 5
Name: libTMCG
Version: 1.3.0
Release: 0
Summary: C++ library for creating secure and fair online card games
License: GPL-2.0+
Group: System/Libraries
Url: http://www.nongnu.org/libtmcg/
Source: http://download.savannah.gnu.org/releases/libtmcg/%{name}-%{version}.tar.gz
Source2: http://download.savannah.gnu.org/releases/libtmcg/%{name}-%{version}.tar.gz.sig
Source3: http://savannah.nongnu.org/project/memberlist-gpgkeys.php?group=libtmcg&download=1#/%{name}.keyring
BuildRequires: gcc-c++
BuildRequires: gmp-devel >= 4.2
BuildRequires: libgcrypt-devel >= 1.6.0
BuildRequires: libgpg-error-devel >= 0.5
BuildRequires: pkgconfig
Requires: gmp >= 4.2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
LibTMCG is a C++ library for creating secure and fair online card
games. The library contains a sort of useful classes, algorithms,
and high-level protocols to support an application programmer in
writing such software. The most remarkable feature is the absence
of a trusted third party (TTP), i.e. neither a central game server
nor trusted hardware components are necessary. Thus, with the present
library there is no need for an independent referee, because the
applied protocols provide a basic level of confidentiality and
fairness by itself. Consequently, the library is well-suited for
peer-to-peer (P2P) environments where no TTP is available. Of
course, we cannot avoid that malicious players share information
about their private cards, but the protocols ensure that the shuffle
of the deck is performed randomly (presumed that at least one player
is honest) and thus the cards will be distributed uniformly among
the players. Further, no coalition can learn the private cards of a
player against his will (except for trivial conclusions). The
corresponding cryptographic problem, actually called Mental Poker, has
been studied since 1979 (Shamir, Rivest, and Adleman) by many authors.
LibTMCG provides the first practical implementation of such protocols.
The implementation relies on advanced cryptographic techniques---the
so-called zero-knowledge proofs. Using these building blocks the high
level protocols minimize the effect of coalitions and preserve the
confidentiality of the players' strategy, i.e. the players are not
required to reveal their cards at the end of the game to show that
they did not cheat.
%package -n libTMCG%{sover}
Summary: C++ library for creating secure and fair online card games
Group: System/Libraries
%description -n libTMCG%{sover}
LibTMCG is a C++ library for creating secure and fair online card
games. The library contains a sort of useful classes, algorithms,
and high-level protocols to support an application programmer in
writing such software. The most remarkable feature is the absence
of a trusted third party (TTP), i.e. neither a central game server
nor trusted hardware components are necessary. Thus, with the present
library there is no need for an independent referee, because the
applied protocols provide a basic level of confidentiality and
fairness by itself. Consequently, the library is well-suited for
peer-to-peer (P2P) environments where no TTP is available. Of
course, we cannot avoid that malicious players share information
about their private cards, but the protocols ensure that the shuffle
of the deck is performed randomly (presumed that at least one player
is honest) and thus the cards will be distributed uniformly among
the players. Further, no coalition can learn the private cards of a
player against his will (except for trivial conclusions). The
corresponding cryptographic problem, actually called Mental Poker, has
been studied since 1979 (Shamir, Rivest, and Adleman) by many authors.
LibTMCG provides the first practical implementation of such protocols.
The implementation relies on advanced cryptographic techniques---the
so-called zero-knowledge proofs. Using these building blocks the high
level protocols minimize the effect of coalitions and preserve the
confidentiality of the players' strategy, i.e. the players are not
required to reveal their cards at the end of the game to show that
they did not cheat.
%package devel
Summary: Libraries, includes etc to develop with libTMCG library
Group: Development/Libraries/C and C++
Requires: %{name}%{sover} = %{version}
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
%description devel
Libraries, includes etc to develop with the libTMCG library.
%package utils
Summary: Utilities from the TMCG libraries
Group: Productivity/Security
%description utils
Utilities from the TMCG library, including experimental tools for
distributed key generation.
%prep
%setup -q
%build
%configure
make %{?_smp_mflags}
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%post -n libTMCG%{sover} -p /sbin/ldconfig
%postun -n libTMCG%{sover} -p /sbin/ldconfig
%post devel
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%postun devel
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%files -n libTMCG%{sover}
%defattr(-, root, root)
%doc AUTHORS BUGS ChangeLog COPYING NEWS PATENTS THANKS TODO README
%{_libdir}/lib*.so.*
%files devel
%defattr(-, root, root)
%doc AUTHORS BUGS ChangeLog COPYING NEWS PATENTS THANKS TODO README
%{_bindir}/%{name}-config
%{_libdir}/lib*.a
%{_libdir}/lib*.so
%{_includedir}/*.h*
%{_datadir}/aclocal/%{name}.m4
%{_infodir}/%{name}.info%{ext_info}
%files utils
%defattr(-, root, root)
%doc AUTHORS BUGS ChangeLog COPYING NEWS PATENTS THANKS TODO README
%{_bindir}/dkg-*
%{_mandir}/man1/dkg-*.1%{ext_man}
%changelog