require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_SHA2_H)) {
    eval 'sub _SHA2_H () {1;}' unless defined(&_SHA2_H);
    eval 'sub SHA256_BLOCK_LENGTH () {64;}' unless defined(&SHA256_BLOCK_LENGTH);
    eval 'sub SHA256_DIGEST_LENGTH () {32;}' unless defined(&SHA256_DIGEST_LENGTH);
    eval 'sub SHA256_DIGEST_STRING_LENGTH () {( &SHA256_DIGEST_LENGTH * 2+ 1);}' unless defined(&SHA256_DIGEST_STRING_LENGTH);
    eval 'sub SHA384_BLOCK_LENGTH () {128;}' unless defined(&SHA384_BLOCK_LENGTH);
    eval 'sub SHA384_DIGEST_LENGTH () {48;}' unless defined(&SHA384_DIGEST_LENGTH);
    eval 'sub SHA384_DIGEST_STRING_LENGTH () {( &SHA384_DIGEST_LENGTH * 2+ 1);}' unless defined(&SHA384_DIGEST_STRING_LENGTH);
    eval 'sub SHA512_BLOCK_LENGTH () {128;}' unless defined(&SHA512_BLOCK_LENGTH);
    eval 'sub SHA512_DIGEST_LENGTH () {64;}' unless defined(&SHA512_DIGEST_LENGTH);
    eval 'sub SHA512_DIGEST_STRING_LENGTH () {( &SHA512_DIGEST_LENGTH * 2+ 1);}' unless defined(&SHA512_DIGEST_STRING_LENGTH);
    require 'sys/cdefs.ph';
}
1;
