text: var common = require('../common');
  var assert = require('assert');
  var fs = require('fs');
  
  if (!common.hasCrypto) {
    console.log('1..0 # Skipped: missing crypto');
    process.exit();
  }
  var crypto = require('crypto');
  
  // Test certificates
  var certPem = fs.readFileSync(common.fixturesDir + '/test_cert.pem', 'ascii');
  var keyPem = fs.readFileSync(common.fixturesDir + '/test_key.pem', 'ascii');
  
  // Test signing and verifying
  var s1 = crypto.createSign('RSA-SHA1')
                 .update('Test123')
                 .sign(keyPem, 'base64');
  var s1stream = crypto.createSign('RSA-SHA1');
  s1stream.end('Test123');
  s1stream = s1stream.sign(keyPem, 'base64');
  assert.equal(s1, s1stream, 'Stream produces same output');
  
  var verified = crypto.createVerify('RSA-SHA1')
                       .update('Test')
                       .update('123')
                       .verify(certPem, s1, 'base64');
  assert.strictEqual(verified, true, 'sign and verify (base 64)');
  
  var s2 = crypto.createSign('RSA-SHA256')
                 .update('Test123')
                 .sign(keyPem, 'binary');
  var s2stream = crypto.createSign('RSA-SHA256');
  s2stream.end('Test123');
  s2stream = s2stream.sign(keyPem, 'binary');
  assert.equal(s2, s2stream, 'Stream produces same output');
  
  var verified = crypto.createVerify('RSA-SHA256')
                       .update('Test')
                       .update('123')
                       .verify(certPem, s2, 'binary');
  assert.strictEqual(verified, true, 'sign and verify (binary)');
  
  var verStream = crypto.createVerify('RSA-SHA256');
  verStream.write('Tes');
  verStream.write('t12');
  verStream.end('3');
  verified = verStream.verify(certPem, s2, 'binary');
  assert.strictEqual(verified, true, 'sign and verify (stream)');
  
  var s3 = crypto.createSign('RSA-SHA1')
                 .update('Test123')
                 .sign(keyPem, 'buffer');
  var verified = crypto.createVerify('RSA-SHA1')
                       .update('Test')
                       .update('123')
                       .verify(certPem, s3);
  assert.strictEqual(verified, true, 'sign and verify (buffer)');
  
  var verStream = crypto.createVerify('RSA-SHA1');
  verStream.write('Tes');
  verStream.write('t12');
  verStream.end('3');
  verified = verStream.verify(certPem, s3);
  assert.strictEqual(verified, true, 'sign and verify (stream)');
  