Should a company ever implement a (recent) published cryptographic protocol I understand that you should never, EVER, EVER implement your own unpublished cryptographic protocols. This topic has been well discussed in many places, e.g. here.

However, once a protocol has been published, peer-reviewed and been around for a few years, what are the general guidelines about implementing this protocol for yourself?

The general advice I've heard is don't. (e.g. SEJPM's comment to this question). Instead, use a pre-existing open source implementation that has been well reviewed such as SSL. But this has a few problems:


There may be restrictions on the use of such implementations.
Sometimes no implementation exists. The protocol may be only have been implemented 1-2 years ago, and no-one has got round to implementing it yet.
An implementation you find may also be faulty. Of particular concern, it is possible the authors may be aware of the fault (such as a backdoor).


And it seems that companies do implement crypto protocols without publishing the implementation, such as the product "Sharemind".

So, should a company ever implement a published protocol for a commercial product? And if so, what guidelines should they follow?
So, should a company ever implement a published protocol for a commercial product?


Yes, if it's something that really adds value for your users. No if it's about saving 4 signature bytes and 112 CPU cycles.


  And if so, what guidelines should they follow?



Publish the source code, at least for the crypto part, so it can be peer reviewed.
Hire experts in the field as consultants to review the implementation.


Both of the above points will help make a strong case for adoption to clients who may have conservative attitudes to security.