@@ -925,28 +925,75 @@ module Puppet::Util::Plist
925
925
}
926
926
end
927
927
928
- it 'should call set_salted_sha512 on 10.7 when given a salted-SHA512 password hash' do
929
- expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
930
- expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( sha512_shadowhashdata )
931
- expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.7' )
932
- expect ( provider ) . to receive ( :set_salted_sha512 ) . with ( sample_users_plist , sha512_shadowhashdata , sha512_password_hash )
933
- provider . write_password_to_users_plist ( sha512_password_hash )
928
+ before do
929
+ allow ( provider ) . to receive ( :merge_attribute_with_dscl ) . with ( 'Users' , username , 'AuthenticationAuthority' , any_args )
934
930
end
935
931
936
- it 'should call set_salted_pbkdf2 on 10.8 when given a PBKDF2 password hash' do
937
- expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
938
- expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( pbkdf2_shadowhashdata )
939
- expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.8' )
940
- expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( sample_users_plist , pbkdf2_shadowhashdata , 'entropy' , pbkdf2_password_hash )
941
- provider . write_password_to_users_plist ( pbkdf2_password_hash )
932
+ describe 'when on macOS 11 (Big Sur) or greater' do
933
+ before do
934
+ allow ( provider . class ) . to receive ( :get_os_version ) . and_return ( '11.0.0' )
935
+ end
936
+
937
+ it 'should add salted_sha512_pbkdf2 AuthenticationAuthority key if missing' do
938
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
939
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( pbkdf2_shadowhashdata )
940
+ expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( sample_users_plist , pbkdf2_shadowhashdata , 'entropy' , pbkdf2_password_hash )
941
+ expect ( provider ) . to receive ( :needs_sha512_pbkdf2_authentication_authority_to_be_added? ) . and_return ( true )
942
+
943
+ expect ( Puppet ) . to receive ( :debug ) . with ( "Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'" )
944
+ provider . write_password_to_users_plist ( pbkdf2_password_hash )
945
+ end
946
+
947
+ it 'should not add salted_sha512_pbkdf2 AuthenticationAuthority key if not missing' do
948
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
949
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( pbkdf2_shadowhashdata )
950
+ expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( sample_users_plist , pbkdf2_shadowhashdata , 'entropy' , pbkdf2_password_hash )
951
+ expect ( provider ) . to receive ( :needs_sha512_pbkdf2_authentication_authority_to_be_added? ) . and_return ( false )
952
+
953
+ expect ( Puppet ) . not_to receive ( :debug ) . with ( "Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'" )
954
+ provider . write_password_to_users_plist ( pbkdf2_password_hash )
955
+ end
942
956
end
943
957
944
- it "should delete the SALTED-SHA512 key in the shadow_hash_data hash if it exists on a 10.8 system and write_password_to_users_plist has been called to set the user's password" do
945
- expect ( provider ) . to receive ( :get_users_plist ) . and_return ( 'users_plist' )
946
- expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( 'users_plist' ) . and_return ( sha512_shadowhashdata )
947
- expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.8' )
948
- expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( 'users_plist' , { } , 'entropy' , pbkdf2_password_hash )
949
- provider . write_password_to_users_plist ( pbkdf2_password_hash )
958
+ describe 'when on macOS version lower than 11' do
959
+ before do
960
+ allow ( provider . class ) . to receive ( :get_os_version )
961
+ allow ( provider ) . to receive ( :needs_sha512_pbkdf2_authentication_authority_to_be_added? ) . and_return ( false )
962
+ end
963
+
964
+ it 'should not add salted_sha512_pbkdf2 AuthenticationAuthority' do
965
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
966
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( pbkdf2_shadowhashdata )
967
+ expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( sample_users_plist , pbkdf2_shadowhashdata , 'entropy' , pbkdf2_password_hash )
968
+ expect ( provider ) . to receive ( :needs_sha512_pbkdf2_authentication_authority_to_be_added? ) . and_return ( false )
969
+
970
+ expect ( Puppet ) . not_to receive ( :debug ) . with ( "Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'" )
971
+ provider . write_password_to_users_plist ( pbkdf2_password_hash )
972
+ end
973
+
974
+ it 'should call set_salted_sha512 on 10.7 when given a salted-SHA512 password hash' do
975
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
976
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( sha512_shadowhashdata )
977
+ expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.7' )
978
+ expect ( provider ) . to receive ( :set_salted_sha512 ) . with ( sample_users_plist , sha512_shadowhashdata , sha512_password_hash )
979
+ provider . write_password_to_users_plist ( sha512_password_hash )
980
+ end
981
+
982
+ it 'should call set_salted_pbkdf2 on 10.8 when given a PBKDF2 password hash' do
983
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( sample_users_plist )
984
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( sample_users_plist ) . and_return ( pbkdf2_shadowhashdata )
985
+ expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.8' )
986
+ expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( sample_users_plist , pbkdf2_shadowhashdata , 'entropy' , pbkdf2_password_hash )
987
+ provider . write_password_to_users_plist ( pbkdf2_password_hash )
988
+ end
989
+
990
+ it "should delete the SALTED-SHA512 key in the shadow_hash_data hash if it exists on a 10.8 system and write_password_to_users_plist has been called to set the user's password" do
991
+ expect ( provider ) . to receive ( :get_users_plist ) . and_return ( 'users_plist' )
992
+ expect ( provider ) . to receive ( :get_shadow_hash_data ) . with ( 'users_plist' ) . and_return ( sha512_shadowhashdata )
993
+ expect ( provider . class ) . to receive ( :get_os_version ) . and_return ( '10.8' )
994
+ expect ( provider ) . to receive ( :set_salted_pbkdf2 ) . with ( 'users_plist' , { } , 'entropy' , pbkdf2_password_hash )
995
+ provider . write_password_to_users_plist ( pbkdf2_password_hash )
996
+ end
950
997
end
951
998
end
952
999
@@ -1203,6 +1250,7 @@ module Puppet::Util::Plist
1203
1250
before :each do
1204
1251
allow ( provider . class ) . to receive ( :get_all_users ) . and_return ( all_users_hash )
1205
1252
allow ( provider . class ) . to receive ( :get_list_of_groups ) . and_return ( group_plist_hash_guid )
1253
+ allow ( provider ) . to receive ( :merge_attribute_with_dscl ) . with ( 'Users' , username , 'AuthenticationAuthority' , any_args )
1206
1254
provider . class . prefetch ( { } )
1207
1255
end
1208
1256
0 commit comments