发新话题
打印

令人作呕的OpenSSL

令人作呕的OpenSSL

在OpenSSL心脏出血之后,我相信很多人都出了血,并且流了泪...网上瞬间出现了大量吐嘈OpenSSL的文章或段子,仿佛内心的窝火一瞬间被释放了出来,跟着这场疯闹,我也吐一下嘈,以雪这些年被OpenSSL蹂躏之辱,也许可以顺便展现一下我的无知与愚昧,但只是也许...
       首先声明的一点是,我并没有恶意诋毁的意思,也并没有针对什么,比起生活中的大喜大悲,比起工作中的大起大落,比起追求理想过程中的遭遇坎坷,OpenSSL的折磨其实是一种幸福,只是对幸福的解读,有时可以认为是,痛并快乐着,齐秦如是说...
       OpenSSL代码真的很烂,太烂,毫无章法的乱。
       实用主义者,或者中毒已深的人总是能给出一段代码之所以这么写而不那么写的理由,并且理由还特别充分,以至于你也会认为这么写,写成这么烂是有理由的,其中一定藏着什么不易理解的玄机,但是,作为非神学的世俗作品,它不是圣经,不易理解本身就是一个过错,当然,也许是我水平太水太菜,没有达到OpenSSL要求的那种深度,如果这样,这篇吐嘈就是写给和我相同水平的菜鸟看的,高手请默默离开,不要带走一点悲哀,留下的这些悲哀,让我们这些菜鸟的眼泪洗刷刷吧...存在就是合理的,好吧,西西弗斯的神话表示人生就是一场悲哀,收成抵不上成本,它是存在的,因此是合理的,请不要报怨OpenSSL,它也是合理的,是的,完全正确。
       开源是伟大的,至少曾经是伟大的,质疑它的人,一定没有体验过Linus Torvalds爆米且口的那份激动与听众受虐般的激情,也不一定拥有站在Richard Stallman或者极端的Eric S. Raymond脚下的那份敬畏和感动。但是OpenSSL出现以后,表明开源所表达的自由还有另外一层意思,那就是代码拥有不受审查的自由,有烂的自由,更多的,每个人都有使用烂代码的自由,更进一步的,每个人都有把烂代码说成艺术的自由,而这份自由,被OpenSSL那黑翼般的力量煽动,带给了每一个人,于是,心脏流血的时候,我攥起了拳头...
       说多了都是泪...突然看到了一个项目,OpenBSD发起一个清理OpenSSL代码的项目,就想继续泪下去,等看完我这篇吐嘈,请带着泪去欣赏吧,链接在下面:清爽链接1
清爽链接2
       同样值得欣赏的是,OpenVPN的代码,同样狠烂!欣赏链接之前,请让我抛块砖,来点小菜。我们开始吧!
。。。

看到这样的代码,我想怜香惜玉的人谁也不忍心加入if (0)逼着后来者用goto吧!

       我对ssl3_write_pending的理解真的很对吗?不,我错了!ssl3_write_pending真的会在没有写完record数据的情况下将left清0,那就是在DTLS的情况下,此时其调用者的那句注释就说对了:
/* next chunk of data should get another prepended empty fragment
             * in ciphersuites with known-IV weakness: */

这就是OpenSSL的所有,连注释说的都不是所有情况。当然OpenSSL并没有明确地注释,总是保留一点解释的空间,所以不要看它的注释,还是看代码吧,如果你想自虐的话...原文:http://blog.csdn.net/dog250/article/details/24552307

TOP

发新话题