diff --git a/examples/poem.txt.crypt b/examples/poem.txt.crypt index 46bf576..e69de29 100644 --- a/examples/poem.txt.crypt +++ b/examples/poem.txt.crypt @@ -1,139 +0,0 @@ -Ô CKSXD ZBêDBO ! QBKXNO âWO ! YR ! TO DYWLO à QOXYEH ! -TOEXO, SV KFKSD OXMYB NO VYXQC TYEBC ZKBWS XYEC, -SV X'OX K ZKC MYWZDé VO XYWLBO ; -SV éDKSD à MOD âQO Yù VO LYXROEB PVOEBSD ; -SV K MYXCSNéBé VK MBYSH NO TéCEC-MRBSCD -DYEDO BKIYXXKXDO NKXC V'YWLBO. - -SV K NSD : — « M'OCD VO NSOE NO ZBYQBèC OD N'KWYEB. -TéCEC, AES FYSD DYX PBYXD MBYSD FYSB VO PBYXD NE TYEB. -MRBSCD CYEBSD à AES VO BOZYECCO. -ZESCAE'SV OCD WYBD ZYEB XYEC, TO FOEH WYEBSB ZYEB VES ; -NKXC CYX DYWLOKE, NYXD T'KS VK ZSOBBO ZYEB KZZES, -SV W'KZZOVVO N'EXO FYSH NYEMO. - -« CK NYMDBSXO OCD VO MSOV OXDB'YEFOBD ; ZKB VK WKSX, -MYWWO EX ZèBO V'OXPKXD, SV DSOXD VO QOXBO REWKSX ; -ZKB VES XYEC FSFYXC OD XYEC CYWWOC ; -KE MROFOD NOC QOôVSOBC NYBWKXD NKXC VOEBC WKSCYXC, -SV NéBYLO VOC MVOPC NO DYEDOC VOC ZBSCYXC -OD WOD OX VSLOBDé VOC RYWWOC. - -« YB SV OCD, VYSX NO XYEC, EXO KEDBO REWKXSDé -AES XO VO MYXXKîD ZYSXD, OD NKXC V'SXSAESDé -BKWZO OXMRKîXéO, OD CYEPPBO OD DYWLO ; -SVC PYXD ZYEB DBYEFOB NSOE NO DéXéLBOEH OPPYBDC ; -SVC C'KQSDOXD OX FKSX ; SVC CYXD MYWWO NOC WYBDC -AES DâDOXD VO WEB NO VOEB DYWLO. - -« CKXC VYS, CKXC LED, CKXC QESNO, SVC OBBOXD SMS-LKC. -SVC CYXD WéMRKXDC, éDKXD SQXYBKXDC ; SVC X'YXD ZKC -VOEB ZKBD NO VK QBKXNO MYXAEêDO. -T'SBKS. ZYEB VOC CKEFOB TO AESDDO VO CKSXD VSOE. -Ô WOC PBèBOC, TO FSOXC FYEC KZZYBDOB WYX NSOE, -TO FSOXC FYEC KZZYBDOB WK DêDO ! » — - -ZBêDBO, SV C'OCD CYEFOXE, MKVWO OX XYC TYEBC DBYELVéC, -NO VK ZKBYVO NSDO KEH KZôDBOC : — KVVOJ, -LBKFOJ VOC LûMROBC OD VOC MVKSOC ! — -OD NO V'KNSOE NE MRBSCD KE CEZBêWO WYWOXD : -— Ô FSFKXD, KSWOJ-FYEC ! KSWOJ. OX FYEC KSWKXD, -PBèBOC, FYEC POBWOBOJ WOC ZVKSOC. — - -SV C'OCD NSD AE'SV OCD LYX N'éMVKSBOB NKXC VOEB XESD -MOC ZOEZVOC éQKBéC VYSX NE ZBYQBèC AES VESD, -NYXD V'âWO OCD MYEFOBDO NO FYSVOC ; -ZESC SV C'OX OCD KVVé, NKXC VOC FOXDC, NKXC VOC PVYDC, -FOBC VOC XYSBC MROFKVODC OD VOC CKXQVKXDC LSVVYDC, -VOC IOEH PSHéC CEB VOC éDYSVOC. - -SS. - -MOEH FOBC AES MOD KZôDBO KVVKSD, V'YXD éQYBQé. - -SSS. - -YR ! DKXNSC AEO Và-LKC, RéVKC ! MROJ MOC LKBLKBOC, -C'éDKVO V'éMRKPKEN NO DOC WOWLBOC MRKBQé, -AEO VO LYEBBOKE, BKXQOKXD COC QVKSFOC OD COC LKBBOC, -PBYDDO KE QSLOD CYX YXQVO Yù DYX CKXQ C'OCD PSQé ; - -MSOV ! DKXNSC AEO VOC MRSOXC NKXC MO CKXQ FSOXXOXD LYSBO, -OD AEO VK WYEMRO RYBBSLVO, OCCKSW KE FYV TYIOEH, -MYWWO NKXC EXO BEMRO OXDBO OX DK LYEMRO XYSBO -OD LYEBNYXXO KE CYVOSV NKXC VOC DBYEC NO DOC IOEH ; - -DKXNSC AE'éMROFOVéO, OD CKXC FYSH, CKXC ZKEZSèBOC, -DK DêDO LVêWO OCD Và CEB EX SXPâWO ZSOE, -VSFBéO KEH FSVC KPPBYXDC, WOEBDBSO à MYEZC NO ZSOBBOC, -SMS, NOBBSèBO DYS, WKBDIB, YX FOXN DYX NSOE ! - -MO NSOE AES X'OCD AE'à DYS, WKBDIB, YX DO VO FYVO ! -YX VO VSFBO à WKXNBSX, MO NSOE ZYEB AES DE WOEBC ! -NOC RYWWOC, MYWWO DYS BOFêDEC NO V'éDYVO, -ZYEB êDBO MKBNSXKEH, ZYEB êDBO CéXKDOEBC, - -NOC ZBêDBOC, ZYEB KFYSB NOC ZKVKSC, NOC MKBBYCCOC, -OD NOC TKBNSXC V'éDé BSKXD CYEC VO MSOV LVOE, -ZYEB KBQOXDOB VOEB WSDBO OD ZYEB NYBOB VOEBC MBYCCOC, -ZYEB LYSBO NO LYX FSX, KCCSC ZBèC N'EX LYX POE, - -KE PYBLKX NYXD VK WKSX NKXC VO WOEBDBO OCD DBOWZéO, -KE VKBBYX MRKBQé N'YB AES ZKIO OD AES CYEBSD, -QBKXN NSOE ! BODYEBXO-DYS FOBC XYEC, DêDO MYEZéO ! -SVC FOXNOXD TéCEC-MRBSCD ! SVC FOXNOXD TéCEC-MRBSCD ! - -SVC VSFBOXD KE LKXNSD, ZYEB AEOVAEOC CKMC CYBNSNOC, -V'éFKXQSVO, VK VYS, V'KEDOV éZYEFKXDé, -OD VK TECDSMO KEH IOEH CéFèBOC OD MKXNSNOC, -OD V'éDYSVO NE MYOEB REWKSX, VK FéBSDé ! - -VOC LYXC TODéC, FSFKXDC, KE LKQXO, YE WYBDC, KEH PVOEFOC, -V'RYWWO TECDO ZBYCMBSD ZKB MKBDYEMRO CIVVK, -V'SXXYMOXD éQYBQé, VO NOESV CKMBé NOC FOEFOC, -VOC ZVOEBC NO V'YBZROVSX, SVC FOXNOXD DYED MOVK ! - -DYED ! VK PYS, VO COBWOXD AEO NSOE DSOXD CYEC CK QKBNO, -VO CKSXD DOWZVO Yù, WYEBKXD, DE NSC :SXDBYïLY, -SVC VSFBOXD DYED ! ZENOEB, FOBDE ! — WKBDIB, BOQKBNO, -BYEFBO DOC IOEH AE'OWZVSD VK VEOEB NE DYWLOKE ; — - -SVC FOXNOXD V'KBMRO KEQECDO Yù V'RYCDSO éDSXMOVVO ! -SVC FOXNOXD MRBSCD, DO NSC-TO ! OD COC WOWLBOC VSéC ! -SVC FOXNOXD VK CEOEB AES CEB CYX PBYXD BESCCOVVO, -OD VOC MVYEC NO COC WKSXC, OD VOC MVYEC NO COC ZSONC ! - -SVC FOXNOXD KE LBSQKXN AES MROJ VES VOC KDDSBO -VO QBKXN MBEMSPSé CEB VOC RYWWOC ZOXMRé ; -SVC FOXNOXD CK ZKBYVO, SVC FOXNOXD CYX WKBDIBO, -OD DYX WKBDIBO à DYS ZKB-NOCCEC VO WKBMRé ! - -DKXD ZYEB VOC MYEZC NO PYEOD AE'SV BOçED à VK ZYBDO ! -MéCKB ! DKXD ZYEB V'KWOX, DKXD ZYEB V'KVVéVESK ! -DKXD ZYEB VK ZSOBBO Yù FSXD ROEBDOB CK DêDO WYBDO ! -DKXD ZYEB VO NBKZ BYEQS AEO CK LKBLO OCCEIK ! - -SVC FOXNOXD COC QOXYEH WOEBDBSC, CK ZKVWO FOBDO, -CK ZVKSO KE PVKXM, CYX YOSV DYED LKSQXé N'SXPSXS, -COC ZVOEBC, CYX KQYXSO, OD CK LYEMRO OXDBYEFOBDO, -OD VO MBS AE'SV ZYECCK : VKWWK CKLKMDRKXS ! - -SVC FOXNOXD VO CéZEVMBO ! SVC FOXNOXD VOC DéXèLBOC ! -VOC CéBKZRSXC MRKXDKXD KE COESV ZBYPYXN NOC MSOEH, -OD VK WèBO NOLYED CYEC V'KBLBO KEH LBKC PEXèLBOC, -AES, COXDKXD Và CYX PSVC, XO VOFKSD ZKC VOC IOEH ! - -YES, MOC éFêAEOC, YES, MOC WKBMRKXNC, YES, MOC ZBêDBOC -K V'RSCDBSYX NE MBSWO, KCCYEFS, MYEBYXXé, -K MO XéBYX BOZE AES BSD ZKBWS VOC DBKîDBOC, -EX ZSON CEB DRBKCéKC, EX MYENO CEB ZRBIXé, - -KE FYVOEB AES DEK VOC VYSC à MYEZC NO MBYCCO, -KE ZSBKDO OWZOBOEB XKZYVéYX NOBXSOB, -SFBO NOEH PYSC, SWWYXNO OXMYB ZVEC AEO PéBYMO, -ZYEBMOKE NKXC VO MVYKAEO OD VYEZ NKXC VO MRKBXSOB, - -SVC FOXNOXD, ô WKBDIB, VO NSOE ZOXCSP OD ZâVO -AES, NOLYED CEB VK DOBBO OD CYEC VO PSBWKWOXD, -DBSCDO OD XYEC CYEBSKXD NKXC XYDBO XESD PKDKVO, -CEB VO XYSB QYVQYDRK CKSQXO éDOBXOVVOWOXD ! diff --git a/src/main.c b/src/main.c index 0153b1d..6d1bb49 100755 --- a/src/main.c +++ b/src/main.c @@ -112,7 +112,7 @@ int main(int argc, char *argv[]) { } if(strcmp(hook, "crypt") == 0) - cryptPolybius(fileSrc, key); + cryptPolybius(fileSrc, fileDst, key); } /* Display error */ diff --git a/src/polybius.c b/src/polybius.c index 042c74a..675c5e2 100644 --- a/src/polybius.c +++ b/src/polybius.c @@ -1,7 +1,7 @@ #include "polybius.h" -int cryptPolybius(const char *filename, const char *key){ +int cryptPolybius(const char *filenameSrc, const char *filenameDst, const char *key){ char polybius[POLYBIUS_SIZE][POLYBIUS_SIZE]; FILE *f = NULL, *fDst = NULL; char data[BUFFER_SIZE]; @@ -16,14 +16,14 @@ int cryptPolybius(const char *filename, const char *key){ printf("\n"); } // Open the file - f = fopen(filename, "r+"); + f = fopen(filenameSrc, "r+"); if (f == NULL) return -1; - /*fDst = fopen(filenameDst, "w"); + fDst = fopen(filenameDst, "w"); if (fDst == NULL) { fclose(f); return -1; - }*/ + } do { end = readFile(f, &size, data); @@ -32,10 +32,10 @@ int cryptPolybius(const char *filename, const char *key){ memset(data, 0, BUFFER_SIZE); memset(dataEncrypted, 0, BUFFER_SIZE); }while(end != 1); + /* Close files */ fclose(f); - //fclose(fDst); - + fclose(fDst); return 0; } /* @@ -74,6 +74,17 @@ void generateSquarePolybius(char polybius[POLYBIUS_SIZE][POLYBIUS_SIZE], const c int t = pos; for (int i = pos; i < ALPHABET_SIZE + pos; i++){ char c = 'A' + n; + if (c == 'J'){ + // We check if I is in the array, if yes, we do not add it + } + if (c == 'I'){ + // We check if J is in the array, is yes, we do not add it + int res = findKeyInSquare(a, 'J'); + // J not in the array, we add it + if (res == 0){ + a[t++] = 'A'; + } + } if (c != 'J'){ int res = findKeyInSquare(a, c); diff --git a/src/polybius.h b/src/polybius.h index bd73664..f0dca90 100644 --- a/src/polybius.h +++ b/src/polybius.h @@ -8,7 +8,7 @@ #define POLYBIUS_SIZE 5 #define ALPHABET_SIZE 26 -int cryptPolybius(const char *, const char *); +int cryptPolybius(const char *, const char *, const char *); void generateSquarePolybius(char polybius[5][5], const char *); #endif