Giter Club home page Giter Club logo

rsa's People

Contributors

vesulius avatar

Watchers

 avatar

rsa's Issues

Vertaisarviointi #2

Ladattu 16.10 klo 17:00

Törmäsin heti alkuun samaan ongelmaan kuin edellinen vertaisarvioija, eli en saannut ohjelmaa toimimaan. Gradle on itsellekin uusi, joten en valitettavasti onnistunut selvittämään mistä ongelma johtuu. Esim. testiluokissa netbeans valittaa, että pakettia org.junit.jupiter.api ei ole olemassa.

Koodi näyttää muuten oikein hyvältä ja tasalaatuiselta. Sitä on helppo lukea ja lähes jokaisessa metodissa on myös javadoc lisättynä. Plussaa myös asiaa selventävistä kommenteista koodin sisällä. Luokat ja metodit on myös järjestelty asiaankuuluvasti.

Edelliseen arviointiin ei sinänsä itselläni ole lisättävää, hienoa myös nähdä että SecureRandom ehdotukseen on tartuttu!
Edellistä arvioijan tapaan kaipaisin hieman laajempaa testausta ohjelmalle.

Hyvältä vaikuttaa!

Vertaisarviointi vk4

Ohjelma ladattu vertaisarviointia varten 9.10. klo 19:46.

Heti alkuun täytyy mainita, että yrityksestä huolimatta en saanut ohjelmaa toimimaan omalla tietokoneellani. En ole ennen käyttänyt gradlea, mutta yritin gradlen dokumentaatiota seuraamalla saada ohjelmaa pyörimään ja lähin tulos oli se, että ohjelma lähti käyntiin ja instructions-metodin komennot tulostuivat, mutta ohjelma pysähtyi heti NullPointerException-virheeseen UI-luokan rivillä 16, eli näköjään sillä rivillä millä käyttäjän pitäisi syöttää haluttu komento. Tämä on todennäköisesti omaa osaamattomuuttani, mutta ajattelin sen silti tässä mainita.

Koodin laatu yleisesti:

Koodi on hyvin kirjoitettu ja selkeästi jäsennelty, jonka ansiosta sitä on helppo seurata ja ymmärtää. RSA-salaukselle ominaiset muuttujat (p, q, yms.) ja myös niiden laskemiseen käytettyä matematiikkaa on selitetty kommenteilla. Ohjelman eri osa-alueille on tehty järkevät luokat ja jokaisella luokalla on oma selkeä tehtävänsä. Myös luokkien sisällä koodia on jäsennelty hyvin metodeihin. Javadoc on kaikkien olennaisten luokkien osalta tehty ja sekin puolestaan helpottaa koodin ymmärtämistä.

RSA-avaimien generointi:

Avaimien generointi on implementoitu hyvin ja lopputuloksena on kaksi 64-bittistä alkulukua. Tässä huomasin yhden korjattavan asian: Random-luokan käyttö satunnaisen BigInteger-luvun generoimiseen. Projektisi määrittelydokumentissa on mainittu, että ohjelmalla halutaan myös testata mahdollisesti RSA-salauksen turvallisuutta. Random-luokka ei ole kaikkein paras keino tähän, sillä se ei tuota turvallisesti satunnaisia lukuja. Kannattaa sen sijaan käyttää SecureRandom-luokkaa (aihetta selitetty täällä: https://stackoverflow.com/questions/11051205/difference-between-java-util-random-and-java-security-securerandom). Tämän muutoksen tekeminen on onneksi niinkin yksinkertaista kuin vain vaihtaa luokan nimeä.

Viestin salaaminen:

Viestit salataan oikein ja niistä luodaan tiedosto, mikä on mukava lisä ja helpottaa ohjelman käyttöä “tositilanteessa”.

Testit:

Testejä voisi mielestäni hieman laajentaa. Esim. Tässä muutama mahdollinen testitapaus:
• Voiko viestin purkaa väärällä avaimella
• Generoiko ohjelma joka kerta varmasti eri avaimen (luo esim. kaksi julkista avainta ja tarkista, että ne eivät ole identtiset)
• Kaksi salattua viestiä eivät ole identtiset mikäli ne on salattu eri avaimella

Yleisesti:

Ohjelma näyttää erittäin hyvältä ja vertaisarvioinnissani mainitut mahdolliset muutokset eivät vie paljoa aikaa. Oikein hyvää työtä!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.