Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965419AbbDJNvK (ORCPT ); Fri, 10 Apr 2015 09:51:10 -0400 Received: from aso-006-i434.relay.mailchannels.net ([23.91.64.115]:3669 "EHLO relay.mailchannels.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964890AbbDJNvH (ORCPT ); Fri, 10 Apr 2015 09:51:07 -0400 X-Sender-Id: duocircle|x-authuser|jac299792458 X-Sender-Id: duocircle|x-authuser|jac299792458 X-MC-Relay: Neutral X-MailChannels-SenderId: duocircle|x-authuser|jac299792458 X-MailChannels-Auth-Id: duocircle X-MC-Loop-Signature: 1428673863082:4143348443 X-MC-Ingress-Time: 1428673863081 X-Mail-Handler: DuoCircle Outbound SMTP X-Originating-IP: 72.84.113.125 X-Report-Abuse-To: abuse@duocircle.com (see https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information for abuse reporting information) X-MHO-User: U2FsdGVkX1/WS1Fdjl8U5dS7PDs6AiSLtxTcg2Bso3U= X-DKIM: OpenDKIM Filter v2.6.8 io B1E738005A Date: Fri, 10 Apr 2015 13:50:56 +0000 From: Jason Cooper To: Boris Brezillon Cc: Herbert Xu , "David S. Miller" , linux-crypto@vger.kernel.org, Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , devicetree@vger.kernel.org, Tawfik Bayouk , Lior Amsalem , Nadav Haklai , Eran Ben-Avi , Thomas Petazzoni , Gregory CLEMENT , Sebastian Hesselbarth , Andrew Lunn , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Arnaud Ebalard Subject: Re: [PATCH 0/2] crypto: add new driver for Marvell CESA Message-ID: <20150410135056.GB28873@io.lakedaemon.net> References: <1428591523-1780-1-git-send-email-boris.brezillon@free-electrons.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1428591523-1780-1-git-send-email-boris.brezillon@free-electrons.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-AuthUser: jac299792458 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2111 Lines: 48 Hey Boris, On Thu, Apr 09, 2015 at 04:58:41PM +0200, Boris Brezillon wrote: > I know we usually try to adapt existing drivers instead of replacing them > by new ones, but after trying to refactor the mv_cesa driver I realized it > would take longer than writing an new one from scratch. I'm sorry, but this makes me *very* uncomfortable. Any organization worth it's salt will do a very careful audit of code touching cryptographic material and sensitive (decrypted) data. From that point on, small audits of the changes to the code allow the organization to build a comfort level with kernel updates. iow, following the git history of the driver. By apply this series, we are basically forcing those organizations to either a) stop updating, or b) expend significant resources to do another full audit. In short, this series breaks the audit chain for the mv_cesa driver. Maybe I'm the only person with this level of paranoia. If so, I'm sure others will override me. >From my POV, it looks like the *only* reason we've chosen this route is developer convenience. I don't think that's sufficient reason to break the change history of a driver handling sensitive data. For an example of how I use the git history and binary differences to audit a series of changes to cryptographic code, please take a look at objdiff [1]. You can even duplicate my audit of my submission for the skein/threefish driver currently in the staging tree, starting at [2] and going up to [3]. thx, Jason. [1] scripts/objdiff [4] [2] 449bb8125e3f "staging: crypto: skein: import code from Skein3Fish.git" [3] 0264b7b7fb44 "staging: crypto: skein: rename macros" [4] There are better tools out there for auditing actual code changes, radare (http://radare.org/r/) is one of them. objdiff is good only at validating object code *hasn't* been changed by style commits. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/