Compare commits

..

13 Commits

Author SHA1 Message Date
gbucchino 098a49429c Update gitignore 2024-09-24 14:28:10 +02:00
gbucchino 3131f79f73 Read file block by block 2024-09-24 14:25:00 +02:00
gbucchino 2490ef0087 Update code 2024-09-24 12:34:25 +02:00
gbucchino d715a0ad04 Update project 2023-10-02 18:35:36 +02:00
gbucchino a7ec6b3978 Move sources files 2023-09-25 19:39:35 +02:00
gbucchino 7cce139996 Replace by english message 2023-09-25 19:28:36 +02:00
gbucchino e0c4b67364 Update gitignore 2023-09-21 15:46:47 +02:00
gbucchino 5b6b663831 Add gitignore 2023-09-20 20:18:04 +02:00
gbucchino 50203b6203 Update text file 2022-11-16 20:13:21 +01:00
gbucchino ca47a6a637 Update caesar chipher 2022-06-20 21:41:33 +02:00
gbucchino e58fb770ad upd project 2022-03-11 11:17:55 +01:00
Geoffrey 478f35fe73 upd 2021-10-22 18:14:02 +02:00
gbucchino 80fc8763b0 upd vigenere 2021-10-21 20:08:14 +02:00
21 changed files with 780 additions and 250 deletions
+4
View File
@@ -0,0 +1,4 @@
main
examples/**crypt
examples/**decrypt
**swp
-95
View File
@@ -1,95 +0,0 @@
#include "cesar.h"
/*
s -> path source
d -> path destination
key -> key of encryption
This function encrypt data
*/
int cryptCesar(const char *s, const int key, const int countCharact, char *bufferDst) {
char *buffer;
int i;
int error = countCharact;
if(error == -1) return error;
/* Allocation dynamique */
buffer = malloc(countCharact + 1); /* + 1 for '\0' */
/* Copy the data of file in the buffer[] */
error = copyFile(s, buffer);
if(error != 0) return error;
/********* Encryption **********/
for(i = 0; i < countCharact; i++) {
int val = 0;
/* For characters of A to Z */
if(buffer[i] >= 'A' && buffer[i] <= 'Z') {
if(buffer[i] + key > 'Z')
val = ((buffer[i] - 'A')-26) + key + 'A';
else
val = (buffer[i] - 'A') + key + 'A';
}
/* For characters of 'a' to 'z' */
else if(buffer[i] >= 'a' && buffer[i] <= 'z') {
if(buffer[i] + key > 'z')
val = ((buffer[i] - 'a')- 26) + key + 'A';
else
val = (buffer[i] - 'a') + key + 'A';
}
/* For others characters */
else val = buffer[i];
bufferDst[i] = val;
}
bufferDst[i] = '\0';
/* Freedom the memory */
free(buffer);
return error;
}
/*
s -> path source
d -> path destination
key -> key of decryption
This function decryption by Cesar
*/
int decryptCesar(const char *s, const int key, const int countCharact, char *bufferDst) {
int error = countCharact;
char *buffer;
int i;
if(error == -1)
return error;
/* Allocation dynamique */
buffer = malloc(countCharact + 1); /* +1 for '\0' */
/* Copy the data from file to buffer */
error = copyFile(s, buffer);
if(error != 0) return error;
/********* Decryption **********/
for(i = 0; i < countCharact; i++) {
int val = 0;
/* buffer[i] >= 'A' AND buffer[i] <= 'Z' */
if(buffer[i] >= 65 && buffer[i] <= 90) {
val = buffer[i] - key;
/* val < 'A' */
if(val < 65)
val = val + 26;
}
else
val = buffer[i];
bufferDst[i] = val;
}
bufferDst[i] = '\0';
/* Freedom the memory */
free(buffer);
return error;
}
-13
View File
@@ -1,13 +0,0 @@
#ifndef H_INFLATE
#define H_INFLATE
#define SIZE_MAX_FILE 8192
#include "functions.h"
/* Functions */
void inflate();
int cryptCesar(const char *s, const int key, const int countCharact, char *bufferDst);
int decryptCesar(const char *s, const int key, const int countCharact, char *bufferDst);
#endif
+139
View 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
View 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 !
+139
View 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 !
+1 -1
View File
@@ -1,3 +1,3 @@
#!/bin/sh
gcc -W main.c functions.c cesar.c vigenere.c -o main && ./main $1 $2 $3 $4
gcc -Wall src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4
BIN
View File
Binary file not shown.
-116
View File
@@ -1,116 +0,0 @@
#include "functions.h"
#include "cesar.h"
#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;
if(argc != 4) {
usage();
}
// Check options
for(i = 0; i < 3; i++){
if(strcmp(argv[1], options[i]) == 0){
error++;
}
}
if(error == 0) {
usage();
return -1;
}
// Check crypt|decrypt
if(strcmp(argv[2], "crypt") != 0 && strcmp(argv[2], "decrypt") != 0){
usage();
return -1;
}
hook = argv[2];
// Check file exist
error = fileExist(argv[3]);
if(error == -1){
printf("File doesn't exist\n");
// usage();
return -1;
}
fileSrc = argv[3];
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
else sFile = sizeof(char) + strlen(fileSrc) + 7;
fileDst = malloc(sFile);
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';
// Get size of the file
numberCharacters = fileNumberCaract(fileSrc);
// Malloc the dest buffer
buffer = malloc(sizeof(int) * numberCharacters);
memset(buffer, 0, sizeof(int) * numberCharacters);
if(strcmp(argv[1], "-c") == 0){
// Get key
int key;
do{
printf("Votre cle de chiffrement (entre 1 et 26): ");
scanf("%d",&key);
}while(key < 1 || key > 26);
if(strcmp(hook, "crypt") == 0)
error = cryptCesar(argv[3], key, numberCharacters, buffer);
if(strcmp(hook, "decrypt") == 0)
error = decryptCesar(argv[3], key, numberCharacters, buffer);
}
else if(strcmp(argv[1], "-v") == 0){
// Get key
char *key = malloc(8);
if(strcmp(hook, "crypt") == 0)
error = cryptVigenere(key, argv[3], buffer);
free(key);
}
else if(strcmp(argv[1], "-t") == 0){
// Get key
}
// 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);
*/
free(fileDst);
free(buffer);
return 0;
}
Executable
+137
View File
@@ -0,0 +1,137 @@
#include "caesar.h"
#define BUFFER_SIZE 128
/*
This function read the file block by block until the end of it
*/
int readFile(FILE *f, int *size, char *buffer){
int index = 0;
char c;
int end = 0;
do{
c = fgetc(f);
buffer[index] = c;
index++;
*size += 1;
// End of the file, we stop it
if (c == EOF){
buffer[index - 1] = '\0';
index = BUFFER_SIZE;
end = 1;
}
}while(index < BUFFER_SIZE);
return end;
}
/*
s -> path source
d -> path destination
key -> key of encryption
This function encrypt data
*/
int cryptCaesar(const char *s, const char *filenameDst, const int key) {
int i;
char c = 0;
FILE *f = NULL, *fDst = NULL;
char data[BUFFER_SIZE];
char dataEncrypted[BUFFER_SIZE];
int size = 0, end = 0;
// Open the file
f = fopen(s, "r+");
if (f == NULL) return -1;
fDst = fopen(filenameDst, "w");
if (fDst == NULL) {
fclose(f);
return -1;
}
// We are going to read the file block by block
do {
end = readFile(f, &size, data);
/********* Encryption **********/
for (i = 0; i < size; i++){
if (data[i] >= 'A' && data[i] <= 'Z'){
c = data[i] - 'A';
dataEncrypted[i] = ((c + key) % 26) + 'A';
}
else if (data[i] >= 'a' && data[i] <= 'z'){
c = data[i] - 'a';
dataEncrypted[i] = ((c + key) % 26) + 'A';
}
else dataEncrypted[i] = data[i];
// We can write into the dest file
if (dataEncrypted[i] != '\0')
fputc(dataEncrypted[i], fDst);
}
size = 0;
memset(data, 0, BUFFER_SIZE);
memset(dataEncrypted, 0, BUFFER_SIZE);
}while(end != 1);
/* Close files */
fclose(f);
fclose(fDst);
return 0;
}
/*
s -> path source
d -> path destination
key -> key of decryption
This function decryption by Cesar
*/
int decryptCaesar(const char *s, const char *filenameDst, const int key) {
int i;
FILE *f = NULL, *fDst = NULL;
char data[BUFFER_SIZE];
char dataDecrypted[BUFFER_SIZE];
int size = 0, end = 0;
// Open the file
f = fopen(s, "r+");
if (f == NULL) return -1;
fDst = fopen(filenameDst, "w");
if (fDst == NULL) {
fclose(f);
return -1;
}
// We are going to read the file block by block
do {
end = readFile(f, &size, data);
/********* Decryption **********/
for (i = 0; i < size; i++){
int val = 0;
//if (data[i] >= 'A' && data[i] <= 'Z'){
if(data[i] >= 65 && data[i] <= 90) {
val = data[i] - key;
if (val < 'A')
val = val + 26;
}
else val = data[i];
dataDecrypted[i] = val;
// We can write into the dest file
if (dataDecrypted[i] != '\0')
fputc(dataDecrypted[i], fDst);
}
size = 0;
memset(data, 0, BUFFER_SIZE);
memset(dataDecrypted, 0, BUFFER_SIZE);
}while(end != 1);
/* Close files */
fclose(f);
fclose(fDst);
return 0;
}
Executable
+13
View File
@@ -0,0 +1,13 @@
#ifndef H_INFLATE
#define H_INFLATE
#define SIZE_MAX_FILE 8192
#include "functions.h"
/* Functions */
int foo(FILE *, int *, char *);
int cryptCaesar(const char *, const char *, const int);
int decryptCaesar(const char *, const char *, const int);
#endif
+5 -4
View File
@@ -3,9 +3,10 @@
void usage() {
printf("Usage: [options] [crypt|decrypt] [file]\n");
printf("Options:\n");
printf("\t-c: chiffrement de Cesar\n");
printf("\t-v: chiffrement de Vigenere\n");
printf("\t-t: chiffrement par transposition\n");
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;
View File
Executable
+117
View File
@@ -0,0 +1,117 @@
#include "functions.h"
#include "caesar.h"
#include "vigenere.h"
int main(int argc, char *argv[]) {
int error = 0;
char *options[4] = {"-c","-v","-t","-s"};
char *hook, *fileSrc, *fileDst, *buffer = NULL;
size_t sFile, i;
if(argc != 4) {
usage();
return -1;
}
// Check kind of encryption
for(i = 0; i < 3; i++){
if(strcmp(argv[1], options[i]) == 0)
error++;
}
if(error == 0) {
usage();
return -1;
}
// Check crypt|decrypt
if(strcmp(argv[2], "crypt") != 0 && strcmp(argv[2], "decrypt") != 0){
usage();
return -1;
}
hook = argv[2];
// Check file exist
error = fileExist(argv[3]);
if(error == -1){
printf("File doesn't exist\n");
// usage();
return -1;
}
fileSrc = argv[3];
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
else sFile = sizeof(char) + strlen(fileSrc) + 7;
fileDst = malloc(sFile);
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';
// Caesar cipher
if(strcmp(argv[1], "-c") == 0){
// Get key
int key;
int res;
do{
printf("Your key (between 1 and 26): ");
scanf("%d",&key);
}while(key < 1 || key > 26);
if(strcmp(hook, "crypt") == 0)
res = cryptCaesar(fileSrc, fileDst, key);
if(strcmp(hook, "decrypt") == 0)
res = decryptCaesar(fileSrc, fileDst, key);
if (res != 0)
printf("Failed to encrypt/decrypt the file");
}
// 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, 0, buffer);
free(key);
}
else if(strcmp(argv[1], "-t") == 0){
// Get key
}
// Polybius square
else if(strcmp(argv[1], "-s") == 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);
//free(data);
return 0;
}
+76
View File
@@ -0,0 +1,76 @@
#include "vigenere.h"
int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacters, char *bufferDst) {
int error = 0;
char matrice[SIZE_MATRICE_VIGENERE][SIZE_MATRICE_VIGENERE];
char *data = malloc(sizeof(char) * numberCharacters);
char *dataVigenere = NULL;
int pos = 0;
size_t i, j = 0;
size_t keyLength = strlen(key);
// Init the Vigenere matrice
matriceVigenere(matrice);
if (data == NULL) return -1;
memset(data, 0, numberCharacters);
error = copyFile(fileSrc, data);
dataVigenere = malloc(strlen(data));
if (dataVigenere == NULL) return -1;
memset(dataVigenere, 0, numberCharacters);
// Fill the dataVigenere with the key
for (i = 0; i < strlen(data); i++){
if (data[i] == '\n' || data[i] == ' ')
dataVigenere[i] = data[i];
else
dataVigenere[i] = key[j++];
if (j == keyLength)
j = 0;
}
dataVigenere[pos - 1] = '\0';
printf("%s\n", data);
printf("%s\n", dataVigenere);
/*do {
c = data[pos++];
printf("%c", c);
if (c == '\n') {}
}while (c != '\0');*/
/* Encrypt the data */
/*for (i = 0; i < strlen(data); i++) {
printf("%c", matrice[data[i]][dataVigenere[i]]);
}*/
free(dataVigenere);
free(data);
return error;
}
void matriceVigenere(char matrice[][SIZE_MATRICE_VIGENERE]) {
int i, j = 0;
char pos, pos2 = 'A';
//for (i = 0; i < SIZE_MATRICE_VIGENERE; i++)
// matrice[0][i] = 'A' + i;
for (i = 0; i < SIZE_MATRICE_VIGENERE; i++) {
for (j = 0; j < SIZE_MATRICE_VIGENERE; j++) {
if (pos > 'Z')
matrice[i][j] = pos2++;
else
matrice[i][j] = pos++;
}
pos = 'B' + i;
pos2 = 'A';
}
for (i = 0; i < SIZE_MATRICE_VIGENERE; i++) {
for (j = 0; j < SIZE_MATRICE_VIGENERE; j++)
printf("%c ", matrice[i][j]);
printf("f\n");
}
}
+10
View File
@@ -0,0 +1,10 @@
#ifndef H_VIGENERE
#define H_VIGENERE
#include "functions.h"
#define SIZE_MATRICE_VIGENERE 26
int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacters, char *bufferDst);
void matriceVigenere(char matrice[][SIZE_MATRICE_VIGENERE]);
#endif
-2
View File
@@ -1,2 +0,0 @@
Hello world!
Je suis un message en clair !!
View File
-2
View File
@@ -1,2 +0,0 @@
HELLO WORLD!
JE SUIS UN MESSAGE EN CLAIR !!
-9
View File
@@ -1,9 +0,0 @@
#include "vigenere.h"
int cryptVigenere(const char *key, const char *data, char *bufferDst) {
int error = 0;
printf("Vigenere\n");
return error;
}
-8
View File
@@ -1,8 +0,0 @@
#ifndef H_VIGENERE
#define H_VIGENERE
#include "functions.h"
int cryptVigenere(const char *key, const char *data, char *bufferDst);
#endif