Ask for mentor - Improve Bcrypt

Kaiyi Zhang zky.own.star at gmail.com
Thu May 9 22:35:14 CDT 2013


Hello everyone:

I am Kaiyi Zhang,A Computer Science and Engineering student from china, my
major is information security. My nickname in #winehackers is KaiyiZhang. I
heard the GSOC and I'm very interested in this, wine is tempting to me.I
have submitted my wine application before the deadline of GSOC. However,
There are some exams which takes a lot of time, So lack of communication
with the wine developers. I know it is late to apply for GSoC, however, I'm
still interesting to the cryptography work in Wine even if I'm not accept
as an official GSoC2013 student. Cryptography work is difficult, and Wine
is difficult, so cryptography in Wine is double difficult for a beginner
like me, could I ask for a mentor for the cryptography work even if my
proposal is not accepted? To my dear kindly future mentor: I don't know how
to thank you, but I'll work hard on contributing to the Wine project as
more as I can. Sincerely appreciate.


My idea is bcrypt improvement, I think it's very suitable for me, I learned
the information security. Cryptography is one of my courses. I  once
development a Elliptic curve cryptography Demonstration system which makes
the ECC Graphical. And i found there is blank in bcrypt, I want to do some
improvement in this. I know there it's difficult for me to develop. but i
can code some test code firstly. I read the dlls/rsaendh/tests/rsaenh.c:
test_hashes(),test_des(),test_rsa() etc. and test the code on ubuntu
successfully.

Here is my  plan:

Week 1 - Week 2
- Get the Winedebug and document more adept
- Get more information about bcrypt
- Bcrypt Wiki: http://en.wikipedia.org/wiki/Bcrypt
 - A Future-Adaptable Password Scheme:
http://static.usenix.org/events/usenix99/provos/provos_html/node1.html
 - File of Bcrypt: http://bcrypt.sourceforge.net/
 - Read the Document of MSDN about Bcrypt and code some examples
 - MSDN about Bcrypt:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa833130(v=vs.85).aspx

Week 3 - Week 5
-Read some wine tests code and run some tests like:
 - the basic encryption dll/crypt32/
- Understand the bcrypt algorithm, there is a lot of code for learning like:
 - A Future-Adaptable Password Scheme:
http://static.usenix.org/events/usenix99/provos/provos_html/node1.html
 - https://github.com/rg3/bcrypt
 - https://code.google.com/p/py-bcrypt/source/browse/bcrypt/bcrypt.c

Week 6 - Week 11
- Code the BCrypt. According to the MSDN The Steps of Bcrypt
        - Open the Algorithm Provider
        - Get or Set Algorithm Properties
        - Create or Import a key
        - Perform Cryptiographic Operations
        - Close the Algorithm Provider
    There is a cross platform Bcrypt at  http://bcrypt.sourceforge.net. if
it is possible we can use it and its license compatible with the wine lgpl
license.
 - add stub functions for Tests functions() and code the Tests functions().
The dlls/rsaenh/tests/rsaenh.c is a good reference. encrypt the pdData and
compare with the right value. stub BCryptCreateHash() BCryptHashData()
BCryptDuplicateHash() BCryptDuplicateHash  BCryptDestroyHash() for
test_hashes(). stub BCryptGenerateSymmetricKey() BCryptKeyDerivation()
BCryptDestroyKey() for test_key_derivation(). stub BCryptGenRandom() for
test_gen_random().

Week 12 - End
- There are also some more cryptions need to tests, I can do more
improvement these

Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20130510/682ae1a6/attachment.html>


More information about the wine-devel mailing list