qwgit / lib / fingerprint.js
http{/,s} git server
git clone http://git.nthia.dev/qwgit

const { X509Certificate } = require('crypto')

module.exports = function (certSrc, algorithm) {
  algorithm ??= ''
  if (!/^(\d+|sha\d+|)$/i.test(algorithm)) return null
  algorithm = String(algorithm).replace(/^sha-?/i,'')
  if (algorithm === '1') algorithm = ''
  let cert = new X509Certificate(certSrc)
  if (!cert) return null
  return cert['fingerprint'+algorithm]?.toLowerCase().replace(/:/g,'')
}