Update code
This commit is contained in:
parent
d715a0ad04
commit
2490ef0087
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,5 +1 @@
|
||||
**.txt.crypt
|
||||
**.txt.decrypt
|
||||
**.txt.**
|
||||
**.txt
|
||||
main
|
||||
|
139
examples/poem.txt
Normal file
139
examples/poem.txt
Normal file
@ -0,0 +1,139 @@
|
||||
Ô saint prêtre ! grande âme ! oh ! je tombe à genoux !
|
||||
Jeune, il avait encor de longs jours parmi nous,
|
||||
Il n'en a pas compté le nombre ;
|
||||
Il était à cet âge où le bonheur fleurit ;
|
||||
Il a considéré la croix de Jésus-Christ
|
||||
Toute rayonnante dans l'ombre.
|
||||
|
||||
Il a dit : — « C'est le Dieu de progrès et d'amour.
|
||||
Jésus, qui voit ton front croit voir le front du jour.
|
||||
Christ sourit à qui le repousse.
|
||||
Puisqu'il est mort pour nous, je veux mourir pour lui ;
|
||||
Dans son tombeau, dont j'ai la pierre pour appui,
|
||||
Il m'appelle d'une voix douce.
|
||||
|
||||
« Sa doctrine est le ciel entr'ouvert ; par la main,
|
||||
Comme un père l'enfant, il tient le genre humain ;
|
||||
Par lui nous vivons et nous sommes ;
|
||||
Au chevet des geôliers dormant dans leurs maisons,
|
||||
Il dérobe les clefs de toutes les prisons
|
||||
Et met en liberté les hommes.
|
||||
|
||||
« Or il est, loin de nous, une autre humanité
|
||||
Qui ne le connaît point, et dans l'iniquité
|
||||
Rampe enchaînée, et souffre et tombe ;
|
||||
Ils font pour trouver Dieu de ténébreux efforts ;
|
||||
Ils s'agitent en vain ; ils sont comme des morts
|
||||
Qui tâtent le mur de leur tombe.
|
||||
|
||||
« Sans loi, sans but, sans guide, ils errent ici-bas.
|
||||
Ils sont méchants, étant ignorants ; ils n'ont pas
|
||||
Leur part de la grande conquête.
|
||||
J'irai. Pour les sauver je quitte le saint lieu.
|
||||
Ô mes frères, je viens vous apporter mon Dieu,
|
||||
Je viens vous apporter ma tête ! » —
|
||||
|
||||
Prêtre, il s'est souvenu, calme en nos jours troublés,
|
||||
De la parole dite aux apôtres : — Allez,
|
||||
Bravez les bûchers et les claies ! —
|
||||
Et de l'adieu du Christ au suprême moment :
|
||||
— Ô vivant, aimez-vous ! aimez. En vous aimant,
|
||||
Frères, vous fermerez mes plaies. —
|
||||
|
||||
Il s'est dit qu'il est bon d'éclairer dans leur nuit
|
||||
Ces peuples égarés loin du progrès qui luit,
|
||||
Dont l'âme est couverte de voiles ;
|
||||
Puis il s'en est allé, dans les vents, dans les flots,
|
||||
Vers les noirs chevalets et les sanglants billots,
|
||||
Les yeux fixés sur les étoiles.
|
||||
|
||||
II.
|
||||
|
||||
Ceux vers qui cet apôtre allait, l'ont égorgé.
|
||||
|
||||
III.
|
||||
|
||||
Oh ! tandis que là-bas, hélas ! chez ces barbares,
|
||||
S'étale l'échafaud de tes membres chargé,
|
||||
Que le bourreau, rangeant ses glaives et ses barres,
|
||||
Frotte au gibet son ongle où ton sang s'est figé ;
|
||||
|
||||
Ciel ! tandis que les chiens dans ce sang viennent boire,
|
||||
Et que la mouche horrible, essaim au vol joyeux,
|
||||
Comme dans une ruche entre en ta bouche noire
|
||||
Et bourdonne au soleil dans les trous de tes yeux ;
|
||||
|
||||
Tandis qu'échevelée, et sans voix, sans paupières,
|
||||
Ta tête blême est là sur un infâme pieu,
|
||||
Livrée aux vils affronts, meurtrie à coups de pierres,
|
||||
Ici, derrière toi, martyr, on vend ton Dieu !
|
||||
|
||||
Ce Dieu qui n'est qu'à toi, martyr, on te le vole !
|
||||
On le livre à Mandrin, ce Dieu pour qui tu meurs !
|
||||
Des hommes, comme toi revêtus de l'étole,
|
||||
Pour être cardinaux, pour être sénateurs,
|
||||
|
||||
Des prêtres, pour avoir des palais, des carrosses,
|
||||
Et des jardins l'été riant sous le ciel bleu,
|
||||
Pour argenter leur mitre et pour dorer leurs crosses,
|
||||
Pour boire de bon vin, assis près d'un bon feu,
|
||||
|
||||
Au forban dont la main dans le meurtre est trempée,
|
||||
Au larron chargé d'or qui paye et qui sourit,
|
||||
Grand Dieu ! retourne-toi vers nous, tête coupée !
|
||||
Ils vendent Jésus-Christ ! ils vendent Jésus-Christ !
|
||||
|
||||
Ils livrent au bandit, pour quelques sacs sordides,
|
||||
L'évangile, la loi, l'autel épouvanté,
|
||||
Et la justice aux yeux sévères et candides,
|
||||
Et l'étoile du coeur humain, la vérité !
|
||||
|
||||
Les bons jetés, vivants, au bagne, ou morts, aux fleuves,
|
||||
L'homme juste proscrit par Cartouche Sylla,
|
||||
L'innocent égorgé, le deuil sacré des veuves,
|
||||
Les pleurs de l'orphelin, ils vendent tout cela !
|
||||
|
||||
Tout ! la foi, le serment que Dieu tient sous sa garde,
|
||||
Le saint temple où, mourant, tu dis :Introïbo,
|
||||
Ils livrent tout ! pudeur, vertu ! — martyr, regarde,
|
||||
Rouvre tes yeux qu'emplit la lueur du tombeau ; —
|
||||
|
||||
Ils vendent l'arche auguste où l'hostie étincelle !
|
||||
Ils vendent Christ, te dis-je ! et ses membres liés !
|
||||
Ils vendent la sueur qui sur son front ruisselle,
|
||||
Et les clous de ses mains, et les clous de ses pieds !
|
||||
|
||||
Ils vendent au brigand qui chez lui les attire
|
||||
Le grand crucifié sur les hommes penché ;
|
||||
Ils vendent sa parole, ils vendent son martyre,
|
||||
Et ton martyre à toi par-dessus le marché !
|
||||
|
||||
Tant pour les coups de fouet qu'il reçut à la porte !
|
||||
César ! tant pour l'amen, tant pour l'alléluia !
|
||||
Tant pour la pierre où vint heurter sa tête morte !
|
||||
Tant pour le drap rougi que sa barbe essuya !
|
||||
|
||||
Ils vendent ses genoux meurtris, sa palme verte,
|
||||
Sa plaie au flanc, son oeil tout baigné d'infini,
|
||||
Ses pleurs, son agonie, et sa bouche entrouverte,
|
||||
Et le cri qu'il poussa : Lamma Sabacthani !
|
||||
|
||||
Ils vendent le sépulcre ! ils vendent les ténèbres !
|
||||
Les séraphins chantant au seuil profond des cieux,
|
||||
Et la mère debout sous l'arbre aux bras funèbres,
|
||||
Qui, sentant là son fils, ne levait pas les yeux !
|
||||
|
||||
Oui, ces évêques, oui, ces marchands, oui, ces prêtres
|
||||
A l'histrion du crime, assouvi, couronné,
|
||||
A ce Néron repu qui rit parmi les traîtres,
|
||||
Un pied sur Thraséas, un coude sur Phryné,
|
||||
|
||||
Au voleur qui tua les lois à coups de crosse,
|
||||
Au pirate empereur Napoléon dernier,
|
||||
Ivre deux fois, immonde encor plus que féroce,
|
||||
Pourceau dans le cloaque et loup dans le charnier,
|
||||
|
||||
Ils vendent, ô martyr, le Dieu pensif et pâle
|
||||
Qui, debout sur la terre et sous le firmament,
|
||||
Triste et nous souriant dans notre nuit fatale,
|
||||
Sur le noir Golgotha saigne éternellement !
|
139
examples/poem.txt.crypt
Normal file
139
examples/poem.txt.crypt
Normal file
@ -0,0 +1,139 @@
|
||||
Ô XFNSY UWêYWJ ! LWFSIJ âRJ ! TM ! OJ YTRGJ à LJSTZC !
|
||||
OJZSJ, NQ FAFNY JSHTW IJ QTSLX OTZWX UFWRN STZX,
|
||||
NQ S'JS F UFX HTRUYé QJ STRGWJ ;
|
||||
NQ éYFNY à HJY âLJ Tù QJ GTSMJZW KQJZWNY ;
|
||||
NQ F HTSXNIéWé QF HWTNC IJ OéXZX-HMWNXY
|
||||
YTZYJ WFDTSSFSYJ IFSX Q'TRGWJ.
|
||||
|
||||
NQ F INY : — « H'JXY QJ INJZ IJ UWTLWèX JY I'FRTZW.
|
||||
OéXZX, VZN ATNY YTS KWTSY HWTNY ATNW QJ KWTSY IZ OTZW.
|
||||
HMWNXY XTZWNY à VZN QJ WJUTZXXJ.
|
||||
UZNXVZ'NQ JXY RTWY UTZW STZX, OJ AJZC RTZWNW UTZW QZN ;
|
||||
IFSX XTS YTRGJFZ, ITSY O'FN QF UNJWWJ UTZW FUUZN,
|
||||
NQ R'FUUJQQJ I'ZSJ ATNC ITZHJ.
|
||||
|
||||
« XF ITHYWNSJ JXY QJ HNJQ JSYW'TZAJWY ; UFW QF RFNS,
|
||||
HTRRJ ZS UèWJ Q'JSKFSY, NQ YNJSY QJ LJSWJ MZRFNS ;
|
||||
UFW QZN STZX ANATSX JY STZX XTRRJX ;
|
||||
FZ HMJAJY IJX LJôQNJWX ITWRFSY IFSX QJZWX RFNXTSX,
|
||||
NQ IéWTGJ QJX HQJKX IJ YTZYJX QJX UWNXTSX
|
||||
JY RJY JS QNGJWYé QJX MTRRJX.
|
||||
|
||||
« TW NQ JXY, QTNS IJ STZX, ZSJ FZYWJ MZRFSNYé
|
||||
VZN SJ QJ HTSSFîY UTNSY, JY IFSX Q'NSNVZNYé
|
||||
WFRUJ JSHMFîSéJ, JY XTZKKWJ JY YTRGJ ;
|
||||
NQX KTSY UTZW YWTZAJW INJZ IJ YéSéGWJZC JKKTWYX ;
|
||||
NQX X'FLNYJSY JS AFNS ; NQX XTSY HTRRJ IJX RTWYX
|
||||
VZN YâYJSY QJ RZW IJ QJZW YTRGJ.
|
||||
|
||||
« XFSX QTN, XFSX GZY, XFSX LZNIJ, NQX JWWJSY NHN-GFX.
|
||||
NQX XTSY RéHMFSYX, éYFSY NLSTWFSYX ; NQX S'TSY UFX
|
||||
QJZW UFWY IJ QF LWFSIJ HTSVZêYJ.
|
||||
O'NWFN. UTZW QJX XFZAJW OJ VZNYYJ QJ XFNSY QNJZ.
|
||||
Ô RJX KWèWJX, OJ ANJSX ATZX FUUTWYJW RTS INJZ,
|
||||
OJ ANJSX ATZX FUUTWYJW RF YêYJ ! » —
|
||||
|
||||
UWêYWJ, NQ X'JXY XTZAJSZ, HFQRJ JS STX OTZWX YWTZGQéX,
|
||||
IJ QF UFWTQJ INYJ FZC FUôYWJX : — FQQJE,
|
||||
GWFAJE QJX GûHMJWX JY QJX HQFNJX ! —
|
||||
JY IJ Q'FINJZ IZ HMWNXY FZ XZUWêRJ RTRJSY :
|
||||
— Ô ANAFSY, FNRJE-ATZX ! FNRJE. JS ATZX FNRFSY,
|
||||
KWèWJX, ATZX KJWRJWJE RJX UQFNJX. —
|
||||
|
||||
NQ X'JXY INY VZ'NQ JXY GTS I'éHQFNWJW IFSX QJZW SZNY
|
||||
HJX UJZUQJX éLFWéX QTNS IZ UWTLWèX VZN QZNY,
|
||||
ITSY Q'âRJ JXY HTZAJWYJ IJ ATNQJX ;
|
||||
UZNX NQ X'JS JXY FQQé, IFSX QJX AJSYX, IFSX QJX KQTYX,
|
||||
AJWX QJX STNWX HMJAFQJYX JY QJX XFSLQFSYX GNQQTYX,
|
||||
QJX DJZC KNCéX XZW QJX éYTNQJX.
|
||||
|
||||
NN.
|
||||
|
||||
HJZC AJWX VZN HJY FUôYWJ FQQFNY, Q'TSY éLTWLé.
|
||||
|
||||
NNN.
|
||||
|
||||
TM ! YFSINX VZJ Qà-GFX, MéQFX ! HMJE HJX GFWGFWJX,
|
||||
X'éYFQJ Q'éHMFKFZI IJ YJX RJRGWJX HMFWLé,
|
||||
VZJ QJ GTZWWJFZ, WFSLJFSY XJX LQFNAJX JY XJX GFWWJX,
|
||||
KWTYYJ FZ LNGJY XTS TSLQJ Tù YTS XFSL X'JXY KNLé ;
|
||||
|
||||
HNJQ ! YFSINX VZJ QJX HMNJSX IFSX HJ XFSL ANJSSJSY GTNWJ,
|
||||
JY VZJ QF RTZHMJ MTWWNGQJ, JXXFNR FZ ATQ OTDJZC,
|
||||
HTRRJ IFSX ZSJ WZHMJ JSYWJ JS YF GTZHMJ STNWJ
|
||||
JY GTZWITSSJ FZ XTQJNQ IFSX QJX YWTZX IJ YJX DJZC ;
|
||||
|
||||
YFSINX VZ'éHMJAJQéJ, JY XFSX ATNC, XFSX UFZUNèWJX,
|
||||
YF YêYJ GQêRJ JXY Qà XZW ZS NSKâRJ UNJZ,
|
||||
QNAWéJ FZC ANQX FKKWTSYX, RJZWYWNJ à HTZUX IJ UNJWWJX,
|
||||
NHN, IJWWNèWJ YTN, RFWYDW, TS AJSI YTS INJZ !
|
||||
|
||||
HJ INJZ VZN S'JXY VZ'à YTN, RFWYDW, TS YJ QJ ATQJ !
|
||||
TS QJ QNAWJ à RFSIWNS, HJ INJZ UTZW VZN YZ RJZWX !
|
||||
IJX MTRRJX, HTRRJ YTN WJAêYZX IJ Q'éYTQJ,
|
||||
UTZW êYWJ HFWINSFZC, UTZW êYWJ XéSFYJZWX,
|
||||
|
||||
IJX UWêYWJX, UTZW FATNW IJX UFQFNX, IJX HFWWTXXJX,
|
||||
JY IJX OFWINSX Q'éYé WNFSY XTZX QJ HNJQ GQJZ,
|
||||
UTZW FWLJSYJW QJZW RNYWJ JY UTZW ITWJW QJZWX HWTXXJX,
|
||||
UTZW GTNWJ IJ GTS ANS, FXXNX UWèX I'ZS GTS KJZ,
|
||||
|
||||
FZ KTWGFS ITSY QF RFNS IFSX QJ RJZWYWJ JXY YWJRUéJ,
|
||||
FZ QFWWTS HMFWLé I'TW VZN UFDJ JY VZN XTZWNY,
|
||||
LWFSI INJZ ! WJYTZWSJ-YTN AJWX STZX, YêYJ HTZUéJ !
|
||||
NQX AJSIJSY OéXZX-HMWNXY ! NQX AJSIJSY OéXZX-HMWNXY !
|
||||
|
||||
NQX QNAWJSY FZ GFSINY, UTZW VZJQVZJX XFHX XTWINIJX,
|
||||
Q'éAFSLNQJ, QF QTN, Q'FZYJQ éUTZAFSYé,
|
||||
JY QF OZXYNHJ FZC DJZC XéAèWJX JY HFSINIJX,
|
||||
JY Q'éYTNQJ IZ HTJZW MZRFNS, QF AéWNYé !
|
||||
|
||||
QJX GTSX OJYéX, ANAFSYX, FZ GFLSJ, TZ RTWYX, FZC KQJZAJX,
|
||||
Q'MTRRJ OZXYJ UWTXHWNY UFW HFWYTZHMJ XDQQF,
|
||||
Q'NSSTHJSY éLTWLé, QJ IJZNQ XFHWé IJX AJZAJX,
|
||||
QJX UQJZWX IJ Q'TWUMJQNS, NQX AJSIJSY YTZY HJQF !
|
||||
|
||||
YTZY ! QF KTN, QJ XJWRJSY VZJ INJZ YNJSY XTZX XF LFWIJ,
|
||||
QJ XFNSY YJRUQJ Tù, RTZWFSY, YZ INX :NSYWTïGT,
|
||||
NQX QNAWJSY YTZY ! UZIJZW, AJWYZ ! — RFWYDW, WJLFWIJ,
|
||||
WTZAWJ YJX DJZC VZ'JRUQNY QF QZJZW IZ YTRGJFZ ; —
|
||||
|
||||
NQX AJSIJSY Q'FWHMJ FZLZXYJ Tù Q'MTXYNJ éYNSHJQQJ !
|
||||
NQX AJSIJSY HMWNXY, YJ INX-OJ ! JY XJX RJRGWJX QNéX !
|
||||
NQX AJSIJSY QF XZJZW VZN XZW XTS KWTSY WZNXXJQQJ,
|
||||
JY QJX HQTZX IJ XJX RFNSX, JY QJX HQTZX IJ XJX UNJIX !
|
||||
|
||||
NQX AJSIJSY FZ GWNLFSI VZN HMJE QZN QJX FYYNWJ
|
||||
QJ LWFSI HWZHNKNé XZW QJX MTRRJX UJSHMé ;
|
||||
NQX AJSIJSY XF UFWTQJ, NQX AJSIJSY XTS RFWYDWJ,
|
||||
JY YTS RFWYDWJ à YTN UFW-IJXXZX QJ RFWHMé !
|
||||
|
||||
YFSY UTZW QJX HTZUX IJ KTZJY VZ'NQ WJçZY à QF UTWYJ !
|
||||
HéXFW ! YFSY UTZW Q'FRJS, YFSY UTZW Q'FQQéQZNF !
|
||||
YFSY UTZW QF UNJWWJ Tù ANSY MJZWYJW XF YêYJ RTWYJ !
|
||||
YFSY UTZW QJ IWFU WTZLN VZJ XF GFWGJ JXXZDF !
|
||||
|
||||
NQX AJSIJSY XJX LJSTZC RJZWYWNX, XF UFQRJ AJWYJ,
|
||||
XF UQFNJ FZ KQFSH, XTS TJNQ YTZY GFNLSé I'NSKNSN,
|
||||
XJX UQJZWX, XTS FLTSNJ, JY XF GTZHMJ JSYWTZAJWYJ,
|
||||
JY QJ HWN VZ'NQ UTZXXF : QFRRF XFGFHYMFSN !
|
||||
|
||||
NQX AJSIJSY QJ XéUZQHWJ ! NQX AJSIJSY QJX YéSèGWJX !
|
||||
QJX XéWFUMNSX HMFSYFSY FZ XJZNQ UWTKTSI IJX HNJZC,
|
||||
JY QF RèWJ IJGTZY XTZX Q'FWGWJ FZC GWFX KZSèGWJX,
|
||||
VZN, XJSYFSY Qà XTS KNQX, SJ QJAFNY UFX QJX DJZC !
|
||||
|
||||
TZN, HJX éAêVZJX, TZN, HJX RFWHMFSIX, TZN, HJX UWêYWJX
|
||||
F Q'MNXYWNTS IZ HWNRJ, FXXTZAN, HTZWTSSé,
|
||||
F HJ SéWTS WJUZ VZN WNY UFWRN QJX YWFîYWJX,
|
||||
ZS UNJI XZW YMWFXéFX, ZS HTZIJ XZW UMWDSé,
|
||||
|
||||
FZ ATQJZW VZN YZF QJX QTNX à HTZUX IJ HWTXXJ,
|
||||
FZ UNWFYJ JRUJWJZW SFUTQéTS IJWSNJW,
|
||||
NAWJ IJZC KTNX, NRRTSIJ JSHTW UQZX VZJ KéWTHJ,
|
||||
UTZWHJFZ IFSX QJ HQTFVZJ JY QTZU IFSX QJ HMFWSNJW,
|
||||
|
||||
NQX AJSIJSY, ô RFWYDW, QJ INJZ UJSXNK JY UâQJ
|
||||
VZN, IJGTZY XZW QF YJWWJ JY XTZX QJ KNWRFRJSY,
|
||||
YWNXYJ JY STZX XTZWNFSY IFSX STYWJ SZNY KFYFQJ,
|
||||
XZW QJ STNW LTQLTYMF XFNLSJ éYJWSJQQJRJSY !
|
BIN
src/.caesar.c.swp
Normal file
BIN
src/.caesar.c.swp
Normal file
Binary file not shown.
BIN
src/.main.c.swp
Normal file
BIN
src/.main.c.swp
Normal file
Binary file not shown.
28
src/caesar.c
28
src/caesar.c
@ -6,20 +6,24 @@
|
||||
key -> key of encryption
|
||||
This function encrypt data
|
||||
*/
|
||||
int cryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst) {
|
||||
char *buffer;
|
||||
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *data) {
|
||||
char *buffer, *bufferDst = NULL;
|
||||
int i;
|
||||
int error = countCharact;
|
||||
char c = 0;
|
||||
|
||||
if(error == -1) return error;
|
||||
if(error == -1) return NULL;
|
||||
|
||||
// Malloc the dest buffer
|
||||
bufferDst = malloc(sizeof(int) * countCharact);
|
||||
memset(bufferDst, 0, sizeof(int) * countCharact);
|
||||
|
||||
/* Allocation dynamique */
|
||||
buffer = malloc(countCharact + 1); /* + 1 for '\0' */
|
||||
|
||||
/* Copy the data of file into the buffer[] */
|
||||
error = copyFile(s, buffer);
|
||||
if(error != 0) return error;
|
||||
if(error != 0) return NULL;
|
||||
|
||||
/********* Encryption **********/
|
||||
for(i = 0; i < countCharact; i++) {
|
||||
@ -45,7 +49,7 @@ int cryptCaesar(const char *s, const int key, const int countCharact, char *buff
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
||||
return error;
|
||||
return bufferDst;
|
||||
}
|
||||
/*
|
||||
s -> path source
|
||||
@ -53,20 +57,24 @@ int cryptCaesar(const char *s, const int key, const int countCharact, char *buff
|
||||
key -> key of decryption
|
||||
This function decryption by Cesar
|
||||
*/
|
||||
int decryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst) {
|
||||
char *decryptCaesar(const char *s, const int key, const int countCharact) {
|
||||
int error = countCharact;
|
||||
char *buffer;
|
||||
char *buffer, *bufferDst = NULL;
|
||||
int i;
|
||||
|
||||
if(error == -1)
|
||||
return error;
|
||||
return NULL;
|
||||
|
||||
// Malloc the dest buffer
|
||||
bufferDst = malloc(sizeof(int) * countCharact);
|
||||
memset(bufferDst, 0, sizeof(int) * countCharact);
|
||||
|
||||
/* Allocation dynamique */
|
||||
buffer = malloc(countCharact + 1); /* +1 for '\0' */
|
||||
|
||||
/* Copy the data from file into buffer */
|
||||
error = copyFile(s, buffer);
|
||||
if(error != 0) return error;
|
||||
if(error != 0) return NULL;
|
||||
|
||||
/********* Decryption **********/
|
||||
for(i = 0; i < countCharact; i++) {
|
||||
@ -88,5 +96,5 @@ int decryptCaesar(const char *s, const int key, const int countCharact, char *bu
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
||||
return error;
|
||||
return bufferDst;
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "functions.h"
|
||||
|
||||
/* Functions */
|
||||
int cryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst);
|
||||
int decryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst);
|
||||
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *);
|
||||
char *decryptCaesar(const char *s, const int key, const int countCharact);
|
||||
|
||||
#endif
|
||||
|
@ -6,6 +6,7 @@ void usage() {
|
||||
printf("\t-c: Caesar cipher\n");
|
||||
printf("\t-v: Vigenere cipher\n");
|
||||
printf("\t-t: Transposition cipher\n");
|
||||
printf("\t-s: Polybius square\n");
|
||||
}
|
||||
int fileExist(const char *path) {
|
||||
FILE *f=NULL;
|
||||
@ -22,9 +23,9 @@ int fileExist(const char *path) {
|
||||
This function copy all characters of the file in the buffer
|
||||
*/
|
||||
int copyFile(const char *path, char *buffer) {
|
||||
FILE *f = fopen(path, "r+");
|
||||
int caract = 0;
|
||||
int i = 0;
|
||||
FILE *f = fopen(path, "r+");
|
||||
|
||||
if(f == NULL) return -1;
|
||||
|
||||
|
188
src/main.c
188
src/main.c
@ -3,116 +3,124 @@
|
||||
#include "vigenere.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int error = 0;
|
||||
int numberCharacters = 0;
|
||||
char *options[3] = {"-c","-v","-t"};
|
||||
char *hook, *fileSrc, *fileDst, *buffer;
|
||||
size_t sFile, i;
|
||||
int error = 0;
|
||||
int numberCharacters = 0;
|
||||
char *options[4] = {"-c","-v","-t","-s"};
|
||||
char *hook, *fileSrc, *fileDst, *data, *buffer = NULL;
|
||||
size_t sFile, i;
|
||||
|
||||
if(argc != 4) {
|
||||
usage();
|
||||
}
|
||||
if(argc != 4) {
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check options
|
||||
for(i = 0; i < 3; i++){
|
||||
if(strcmp(argv[1], options[i]) == 0){
|
||||
error++;
|
||||
}
|
||||
}
|
||||
// Check kind of encryption
|
||||
for(i = 0; i < 3; i++){
|
||||
if(strcmp(argv[1], options[i]) == 0)
|
||||
error++;
|
||||
}
|
||||
|
||||
if(error == 0) {
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
if(error == 0) {
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check crypt|decrypt
|
||||
if(strcmp(argv[2], "crypt") != 0 && strcmp(argv[2], "decrypt") != 0){
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
// Check crypt|decrypt
|
||||
if(strcmp(argv[2], "crypt") != 0 && strcmp(argv[2], "decrypt") != 0){
|
||||
usage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
hook = argv[2];
|
||||
hook = argv[2];
|
||||
|
||||
// Check file exist
|
||||
error = fileExist(argv[3]);
|
||||
if(error == -1){
|
||||
printf("File doesn't exist\n");
|
||||
// usage();
|
||||
return -1;
|
||||
}
|
||||
// Check file exist
|
||||
error = fileExist(argv[3]);
|
||||
if(error == -1){
|
||||
printf("File doesn't exist\n");
|
||||
// usage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
fileSrc = argv[3];
|
||||
fileSrc = argv[3];
|
||||
|
||||
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
|
||||
else sFile = sizeof(char) + strlen(fileSrc) + 7;
|
||||
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
|
||||
else sFile = sizeof(char) + strlen(fileSrc) + 7;
|
||||
|
||||
fileDst = malloc(sFile);
|
||||
fileDst = malloc(sFile);
|
||||
|
||||
for(i = 0; i < strlen(fileSrc); i++){
|
||||
fileDst[i] = fileSrc[i];
|
||||
}
|
||||
for(i = 0; i < strlen(fileSrc); i++){
|
||||
fileDst[i] = fileSrc[i];
|
||||
}
|
||||
|
||||
fileDst[i++] = '.';
|
||||
if(strcmp(hook, "decrypt") == 0){
|
||||
fileDst[i++] = 'd';
|
||||
fileDst[i++] = 'e';
|
||||
}
|
||||
fileDst[i++] = 'c';
|
||||
fileDst[i++] = 'r';
|
||||
fileDst[i++] = 'y';
|
||||
fileDst[i++] = 'p';
|
||||
fileDst[i++] = 't';
|
||||
fileDst[i++] = '\0';
|
||||
fileDst[i++] = '.';
|
||||
if(strcmp(hook, "decrypt") == 0){
|
||||
fileDst[i++] = 'd';
|
||||
fileDst[i++] = 'e';
|
||||
}
|
||||
fileDst[i++] = 'c';
|
||||
fileDst[i++] = 'r';
|
||||
fileDst[i++] = 'y';
|
||||
fileDst[i++] = 'p';
|
||||
fileDst[i++] = 't';
|
||||
fileDst[i++] = '\0';
|
||||
|
||||
// Get size of the file
|
||||
numberCharacters = fileNumberCaract(fileSrc);
|
||||
// Get size of the file
|
||||
numberCharacters = fileNumberCaract(fileSrc);
|
||||
|
||||
// Malloc the dest buffer
|
||||
buffer = malloc(sizeof(int) * numberCharacters);
|
||||
memset(buffer, 0, sizeof(int) * numberCharacters);
|
||||
// Read the file
|
||||
data = malloc(numberCharacters + 1); /* + 1 for '\0' */
|
||||
|
||||
// Caesar cipher
|
||||
if(strcmp(argv[1], "-c") == 0){
|
||||
// Get key
|
||||
int key;
|
||||
/* Copy the data of file into the data[] */
|
||||
error = copyFile(fileSrc, data);
|
||||
if(error != 0) return -1;
|
||||
|
||||
do{
|
||||
printf("Your key (between 1 and 26): ");
|
||||
scanf("%d",&key);
|
||||
}while(key < 1 || key > 26);
|
||||
// Caesar cipher
|
||||
if(strcmp(argv[1], "-c") == 0){
|
||||
// Get key
|
||||
int key;
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
error = cryptCaesar(fileSrc, key, numberCharacters, buffer);
|
||||
if(strcmp(hook, "decrypt") == 0)
|
||||
error = decryptCaesar(fileSrc, key, numberCharacters, buffer);
|
||||
}
|
||||
else if(strcmp(argv[1], "-v") == 0){
|
||||
// Get key
|
||||
char *key = malloc(8);
|
||||
printf("Your key: ");
|
||||
scanf("%s", key);
|
||||
do{
|
||||
printf("Your key (between 1 and 26): ");
|
||||
scanf("%d",&key);
|
||||
}while(key < 1 || key > 26);
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
buffer = cryptCaesar(fileSrc, key, numberCharacters, data);
|
||||
if(strcmp(hook, "decrypt") == 0)
|
||||
buffer = decryptCaesar(fileSrc, key, numberCharacters);
|
||||
}
|
||||
// Vigenere
|
||||
else if(strcmp(argv[1], "-v") == 0){
|
||||
// Get key
|
||||
char *key = malloc(8);
|
||||
printf("Your key: ");
|
||||
scanf("%s", key);
|
||||
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
error = cryptVigenere(key, fileSrc, numberCharacters, buffer);
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
error = cryptVigenere(key, fileSrc, numberCharacters, buffer);
|
||||
|
||||
free(key);
|
||||
}
|
||||
else if(strcmp(argv[1], "-t") == 0){
|
||||
// Get key
|
||||
}
|
||||
free(key);
|
||||
}
|
||||
else if(strcmp(argv[1], "-t") == 0){
|
||||
// Get key
|
||||
}
|
||||
// Polybius square
|
||||
else if(strcmp(argv[1], "-s") == 0){
|
||||
|
||||
// Add data to file
|
||||
addDataToFile(buffer, fileDst);
|
||||
}
|
||||
|
||||
/* Display error */
|
||||
/*
|
||||
* if(error == 0) err(error, fileDst);
|
||||
* else if(error == -1) err(error, fileSrc);
|
||||
* else if(error == -2) err(error, fileDst);
|
||||
*/
|
||||
// Add data to file
|
||||
addDataToFile(buffer, fileDst);
|
||||
|
||||
free(fileDst);
|
||||
free(buffer);
|
||||
return 0;
|
||||
/* Display error */
|
||||
/*
|
||||
* if(error == 0) err(error, fileDst);
|
||||
* else if(error == -1) err(error, fileSrc);
|
||||
* else if(error == -2) err(error, fileDst);
|
||||
*/
|
||||
|
||||
free(fileDst);
|
||||
free(buffer);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user