@@ -1721,71 +1721,99 @@ int test_gssapi_1(bool user_env_file, bool use_cb, bool no_seal)
1721
1721
1722
1722
gss_release_buffer (& retmin , & srv_token );
1723
1723
1724
- retmaj = gssntlm_wrap (& retmin , cli_ctx , 1 , 0 , & message , & conf_state ,
1725
- & cli_token );
1726
- if (retmaj != GSS_S_COMPLETE ) {
1727
- print_gss_error ("gssntlm_wrap(cli) failed!" ,
1728
- retmaj , retmin );
1729
- ret = EINVAL ;
1730
- goto done ;
1731
- }
1732
- if (conf_state == 0 ) {
1733
- fprintf (stderr , "WARN: gssntlm_wrap(cli) returned 0 conf_state!\n" );
1734
- fflush (stderr );
1735
- }
1724
+ if (no_seal ) {
1725
+ retmaj = gssntlm_wrap (& retmin , cli_ctx , 1 , 0 , & message , NULL ,
1726
+ & cli_token );
1727
+ if ((retmaj != GSS_S_FAILURE ) && (retmin != ENOTSUP )) {
1728
+ fprintf (stderr , "WARN: gssntlm_wrap(cli) did not fail!\n" );
1729
+ fflush (stderr );
1730
+ ret = EINVAL ;
1731
+ goto done ;
1732
+ }
1736
1733
1737
- retmaj = gssntlm_unwrap (& retmin , srv_ctx ,
1738
- & cli_token , & srv_token , & conf_state , NULL );
1739
- if (retmaj != GSS_S_COMPLETE ) {
1740
- print_gss_error ("gssntlm_unwrap(srv) failed!" ,
1741
- retmaj , retmin );
1742
- ret = EINVAL ;
1743
- goto done ;
1744
- }
1745
- if (conf_state == 0 ) {
1746
- fprintf (stderr , "WARN: gssntlm_wrap(srv) returned 0 conf_state!\n" );
1747
- fflush (stderr );
1748
- }
1734
+ retmaj = gssntlm_wrap (& retmin , srv_ctx , 1 , 0 , & message , NULL ,
1735
+ & srv_token );
1736
+ if ((retmaj != GSS_S_FAILURE ) && (retmin != ENOTSUP )) {
1737
+ fprintf (stderr , "WARN: gssntlm_wrap(srv) did not fail!\n" );
1738
+ fflush (stderr );
1739
+ ret = EINVAL ;
1740
+ goto done ;
1741
+ }
1742
+ } else {
1743
+ retmaj = gssntlm_wrap (& retmin , cli_ctx , 1 , 0 , & message , & conf_state ,
1744
+ & cli_token );
1745
+ if (retmaj != GSS_S_COMPLETE ) {
1746
+ print_gss_error ("gssntlm_wrap(cli) failed!" ,
1747
+ retmaj , retmin );
1748
+ ret = EINVAL ;
1749
+ goto done ;
1750
+ }
1751
+ if (conf_state == 0 ) {
1752
+ fprintf (stderr , "WARN: gssntlm_wrap(cli) gave 0 conf_state!\n" );
1753
+ fflush (stderr );
1754
+ ret = EINVAL ;
1755
+ goto done ;
1756
+ }
1749
1757
1750
- gss_release_buffer (& retmin , & cli_token );
1751
- gss_release_buffer (& retmin , & srv_token );
1758
+ retmaj = gssntlm_unwrap (& retmin , srv_ctx ,
1759
+ & cli_token , & srv_token , & conf_state , NULL );
1760
+ if (retmaj != GSS_S_COMPLETE ) {
1761
+ print_gss_error ("gssntlm_unwrap(srv) failed!" ,
1762
+ retmaj , retmin );
1763
+ ret = EINVAL ;
1764
+ goto done ;
1765
+ }
1766
+ if (conf_state == 0 ) {
1767
+ fprintf (stderr , "WARN: gssntlm_wrap(srv) gave 0 conf_state!\n" );
1768
+ fflush (stderr );
1769
+ ret = EINVAL ;
1770
+ goto done ;
1771
+ }
1752
1772
1753
- retmaj = gssntlm_wrap (& retmin , srv_ctx , 1 , 0 , & message , & conf_state ,
1754
- & srv_token );
1755
- if (retmaj != GSS_S_COMPLETE ) {
1756
- print_gss_error ("gssntlm_wrap(srv) failed!" ,
1757
- retmaj , retmin );
1758
- ret = EINVAL ;
1759
- goto done ;
1760
- }
1761
- if (conf_state == 0 ) {
1762
- fprintf (stderr , "WARN: gssntlm_wrap(srv) returned 0 conf_state!\n" );
1763
- fflush (stderr );
1764
- }
1773
+ gss_release_buffer (& retmin , & cli_token );
1774
+ gss_release_buffer (& retmin , & srv_token );
1765
1775
1766
- retmaj = gssntlm_unwrap (& retmin , cli_ctx ,
1767
- & srv_token , & cli_token , & conf_state , NULL );
1768
- if (retmaj != GSS_S_COMPLETE ) {
1769
- print_gss_error ("gssntlm_unwrap(cli) failed!" ,
1770
- retmaj , retmin );
1771
- ret = EINVAL ;
1772
- goto done ;
1773
- }
1774
- if (conf_state == 0 ) {
1775
- fprintf (stderr , "WARN: gssntlm_wrap(cli) returned 0 conf_state!\n" );
1776
- fflush (stderr );
1777
- }
1776
+ retmaj = gssntlm_wrap (& retmin , srv_ctx , 1 , 0 , & message , & conf_state ,
1777
+ & srv_token );
1778
+ if (retmaj != GSS_S_COMPLETE ) {
1779
+ print_gss_error ("gssntlm_wrap(srv) failed!" ,
1780
+ retmaj , retmin );
1781
+ ret = EINVAL ;
1782
+ goto done ;
1783
+ }
1784
+ if (conf_state == 0 ) {
1785
+ fprintf (stderr , "WARN: gssntlm_wrap(srv) gave 0 conf_state!\n" );
1786
+ fflush (stderr );
1787
+ ret = EINVAL ;
1788
+ goto done ;
1789
+ }
1778
1790
1779
- if (memcmp (message .value , cli_token .value , cli_token .length ) != 0 ) {
1780
- print_gss_error ("sealing and unsealing failed to return the "
1781
- "same result" ,
1782
- retmaj , retmin );
1783
- ret = EINVAL ;
1784
- goto done ;
1785
- }
1791
+ retmaj = gssntlm_unwrap (& retmin , cli_ctx ,
1792
+ & srv_token , & cli_token , & conf_state , NULL );
1793
+ if (retmaj != GSS_S_COMPLETE ) {
1794
+ print_gss_error ("gssntlm_unwrap(cli) failed!" ,
1795
+ retmaj , retmin );
1796
+ ret = EINVAL ;
1797
+ goto done ;
1798
+ }
1799
+ if (conf_state == 0 ) {
1800
+ fprintf (stderr , "WARN: gssntlm_wrap(cli) gave 0 conf_state!\n" );
1801
+ fflush (stderr );
1802
+ ret = EINVAL ;
1803
+ goto done ;
1804
+ }
1786
1805
1787
- gss_release_buffer (& retmin , & cli_token );
1788
- gss_release_buffer (& retmin , & srv_token );
1806
+ if (memcmp (message .value , cli_token .value , cli_token .length ) != 0 ) {
1807
+ print_gss_error ("sealing and unsealing failed to return the "
1808
+ "same result" ,
1809
+ retmaj , retmin );
1810
+ ret = EINVAL ;
1811
+ goto done ;
1812
+ }
1813
+
1814
+ gss_release_buffer (& retmin , & cli_token );
1815
+ gss_release_buffer (& retmin , & srv_token );
1816
+ }
1789
1817
1790
1818
gssntlm_release_name (& retmin , & gss_username );
1791
1819
gssntlm_release_name (& retmin , & gss_srvname );
0 commit comments