.NET dan Java Cryptography Pain Pain Pain
Hari itu gw berencana berangkat ke partner kantor untuk join development, rencananya jam 9 pagi mau duduk bareng sambil menyelaraskan security di kedua belah pihak.
Gw pake .Net dan partner pake Java, kita janjian pake XML Signature. Metode Signaturenya menggunakan RSA dan untuk digestnya menggunakan SHA, karena gw pake .NET gw gak begitu kerepotan untuk melakukan signature pada XML, karena .NET mempunyai System.Security.Cryptography.Xml
Percobaan pertama kirim data gak sukses, kemungkinan karena public key yang gw kasih gak sepasang sama private key gw, akhirnya gw create baru pair public key dan private key. Coba lagi dan gagal lagi, hmmm aneh juga.
Percobaan pertama gw kirim XML Modulus sama Exponen nya ke partner, dia implemantasi dan kita testing bertukaran data, ternyata tekhnik seperti itu gagal. Bingung udah mulai nempel di kepala, hasil digest dan signature udah berhasil di buat dan udah diterima, format juga udah cucok, tapi kenapa gak valid pada saat di validasi.
Akhirnya kita coba membalik kondisi nya, Java yang generate pair private dan public key dan di kasih ke .NET buat bikin encryptnya. Ternyata gagal waktu load private key di .NET, “Invalid Data”.
Coba lagi .NET bikin file PFX trus Java convert ke file JKS, usaha convernya setengah hidup, dari satu tool ke tool yang lainnya udah di jajalin. Oke deh sekarang Java load CER file yang gw generate, akhirnya gagal juga.
Ubek kanan kiri gak kena kena, akhirnya gw coba print byte per byte, dari .Net maupun Java, Jaah ternyata hasil Base64 dari byte yang .Net kirim berbeda banget kalo udah sampe di java.
Contoh
.NET -> 126 127 128 129 130
Java -> 126 127 -128 -127 -125
Ternyata di .NET byte itu unsigned dari 0 sampai 255, sedangkan di Java byte itu signed dari -128 sampai 127, gw curiga ini penyebab dari gak pernah validnya dokumen gw.
Sip deh, kalo gitu gimana dong biar bisa valid ?????
Udah pusing bro, udah mau jam 9 malem, motor gw masih di kantor neeeh, udah gak bisa mikir pulak, pulaaaaaaaaaaaaaaaaaaaaaaaaang.
Wah...saya kurang ngerti nih..gini-ginian bos, dikantor sampe jam 9 melem...wuiiih betah amat ! he..he
BalasHapusbukannya betah... terpaksa :p
BalasHapusEkke juga ikutan pusing bacanya....:D
BalasHapusGw tau lo bisa Put... Fighting!
BalasHapusaku pusing bacanya. Gak ngerti XDDDD
BalasHapuswah selamat berpusing-pusing ria yaa.. :p
BalasHapuskalo ditulis pake bahasa inggris bisa bermanfaat buat para makhluk IT di seluruh dunia :p tapi solusinya belum ada ya? XDDDD ya udah, asal ketemu masalahnya, solusinya tinggal cari di google :p
BalasHapussh mumet.. mumet.. mumett....
BalasHapus@all
BalasHapusudah gak mumet.. thanks :D