Skip to content

couchdb unable to run on FIPS enabled CentOS #1171

@Nanonid

Description

@Nanonid

When FIPS mode is enabled, MD5 is disabled in OpenSSL.
Verify at the command prompt:

%openssl md5 [some file]
Error setting digest md5
140656009516960:error:060800A3:digital envelope routines:EVP_DigestInit_ex:disabled for fips:digest.c:256:

Expected Behavior

Fallback to other message digest mechanism

Current Behavior

Running couchdb with FIPS enabled results in the following abort

md5_dgst.c(82): OpenSSL internal error, assertion failed: Digest MD5 forbidden in FIPS mode!
[os_mon] memory supervisor port (memsup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
Aborted

Possible Solution

Provide alternative message digest mechanism. Remove direct calls to crypto:hash MD5, and reference couchdb hash.
There is an impact to the CouchDB API

Steps to Reproduce (for bugs)

  1. Enable FIPS on CentOS 6.9 following this procedure
  2. Build release couchdb
  3. Execute couchdb
  4. Couchdb aborts

Context

Unable to use CouchDB for a project. If CouchDB unable to run on FIPS compliant CentOS will have to abandon CouchDB.

Your Environment

  • Version used: Couchdb as of commit d3a5a71
  • Browser Name and version:
  • Operating System and version (desktop or mobile): CentOS 6.9 yum update as of 2/15/2018
  • Link to your project: Internal project

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions