Package com.sun.jna.platform.win32.Sspi

Examples of com.sun.jna.platform.win32.Sspi.SecBufferDesc


    public void testResizeDesktopFromTop() throws InterruptedException {
       
        newAppBar();

        APPBARDATA data = new APPBARDATA.ByReference();
        data.uEdge.setValue(ShellAPI.ABE_TOP);
        data.rc.top = 0;
        data.rc.left = 0;
        data.rc.bottom = RESIZE_HEIGHT;
        data.rc.right = User32.INSTANCE.GetSystemMetrics(User32.SM_CXFULLSCREEN);
View Full Code Here


      assertEquals(W32Errors.SEC_E_OK, Secur32.INSTANCE.AcquireCredentialsHandle(
          null, "Negotiate", Sspi.SECPKG_CRED_OUTBOUND, null, null, null,
          null, phCredential, ptsExpiry));
      // initialize security context
      CtxtHandle phNewContext = new CtxtHandle();
      SecBufferDesc pbToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
      IntByReference pfContextAttr = new IntByReference();
      int rc = Secur32.INSTANCE.InitializeSecurityContext(phCredential, null,
          Advapi32Util.getUserName(), Sspi.ISC_REQ_CONNECTION, 0,
          Sspi.SECURITY_NATIVE_DREP, null, 0, phNewContext, pbToken,
          pfContextAttr, null);     
View Full Code Here

      assertEquals(W32Errors.SEC_E_OK, Secur32.INSTANCE.AcquireCredentialsHandle(
          null, "Negotiate", Sspi.SECPKG_CRED_INBOUND, null, null, null,
          null, phServerCredential, ptsServerExpiry));
      // server ----------- security context
    CtxtHandle phServerContext = new CtxtHandle();
      SecBufferDesc pbServerToken = null;
      IntByReference pfServerContextAttr = new IntByReference();
      int clientRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      int serverRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      do {
          // client ----------- initialize security context, produce a client token
        // client token returned is always new
          SecBufferDesc pbClientToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
          if (clientRc == W32Errors.SEC_I_CONTINUE_NEEDED) {
            // server token is empty the first time
            SecBufferDesc pbServerTokenCopy = pbServerToken == null
              ? null : new SecBufferDesc(Sspi.SECBUFFER_TOKEN, pbServerToken.getBytes());
            clientRc = Secur32.INSTANCE.InitializeSecurityContext(
              phClientCredential,
              phClientContext.isNull() ? null : phClientContext,
                Advapi32Util.getUserName(),
                Sspi.ISC_REQ_CONNECTION,
                0,
                Sspi.SECURITY_NATIVE_DREP,
                pbServerTokenCopy,
                0,
                phClientContext,
                pbClientToken,
                pfClientContextAttr,
                null);       
          assertTrue(clientRc == W32Errors.SEC_I_CONTINUE_NEEDED || clientRc == W32Errors.SEC_E_OK);
          }
          // server ----------- accept security context, produce a server token
        if (serverRc == W32Errors.SEC_I_CONTINUE_NEEDED) {
          pbServerToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
          SecBufferDesc pbClientTokenByValue = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, pbClientToken.getBytes());
          serverRc = Secur32.INSTANCE.AcceptSecurityContext(phServerCredential,
              phServerContext.isNull() ? null : phServerContext,
              pbClientTokenByValue,
              Sspi.ISC_REQ_CONNECTION,
              Sspi.SECURITY_NATIVE_DREP,
View Full Code Here

      assertEquals(W32Errors.SEC_E_OK, Secur32.INSTANCE.AcquireCredentialsHandle(
          null, "Negotiate", Sspi.SECPKG_CRED_INBOUND, null, null, null,
          null, phServerCredential, ptsServerExpiry));
      // server ----------- security context
    CtxtHandle phServerContext = new CtxtHandle();
      SecBufferDesc pbServerToken = null;
      IntByReference pfServerContextAttr = new IntByReference();
      int clientRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      int serverRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      do {
          // client ----------- initialize security context, produce a client token
        // client token returned is always new
          SecBufferDesc pbClientToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
          if (clientRc == W32Errors.SEC_I_CONTINUE_NEEDED) {
            // server token is empty the first time
            SecBufferDesc pbServerTokenCopy = pbServerToken == null
              ? null : new SecBufferDesc(Sspi.SECBUFFER_TOKEN, pbServerToken.getBytes());
            clientRc = Secur32.INSTANCE.InitializeSecurityContext(
              phClientCredential,
              phClientContext.isNull() ? null : phClientContext,
                Advapi32Util.getUserName(),
                Sspi.ISC_REQ_CONNECTION,
                0,
                Sspi.SECURITY_NATIVE_DREP,
                pbServerTokenCopy,
                0,
                phClientContext,
                pbClientToken,
                pfClientContextAttr,
                null);       
          assertTrue(clientRc == W32Errors.SEC_I_CONTINUE_NEEDED || clientRc == W32Errors.SEC_E_OK);
          }
          // server ----------- accept security context, produce a server token
        if (serverRc == W32Errors.SEC_I_CONTINUE_NEEDED) {
          pbServerToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
          SecBufferDesc pbClientTokenByValue = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, pbClientToken.getBytes());
          serverRc = Secur32.INSTANCE.AcceptSecurityContext(phServerCredential,
              phServerContext.isNull() ? null : phServerContext,
              pbClientTokenByValue,
              Sspi.ISC_REQ_CONNECTION,
              Sspi.SECURITY_NATIVE_DREP,
View Full Code Here

      assertEquals(W32Errors.SEC_E_OK, Secur32.INSTANCE.AcquireCredentialsHandle(
          null, "Negotiate", Sspi.SECPKG_CRED_INBOUND, null, null, null,
          null, phServerCredential, ptsServerExpiry));
      // server ----------- security context
    CtxtHandle phServerContext = new CtxtHandle();
      SecBufferDesc pbServerToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
      IntByReference pfServerContextAttr = new IntByReference();
      int clientRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      int serverRc = W32Errors.SEC_I_CONTINUE_NEEDED;
      do {
        // client token returned is always new
          SecBufferDesc pbClientToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
          // client ----------- initialize security context, produce a client token
        if (clientRc == W32Errors.SEC_I_CONTINUE_NEEDED) {
            // server token is empty the first time
          clientRc = Secur32.INSTANCE.InitializeSecurityContext(
              phClientCredential,
View Full Code Here

      assertEquals(W32Errors.SEC_E_OK, Secur32.INSTANCE.FreeCredentialsHandle(
          phClientCredential));     
    }
   
    public void testCreateEmptyToken() {
        SecBufferDesc token = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);
        assertEquals(1, token.pBuffers.length);
        assertEquals(1, token.cBuffers);
        assertEquals(Sspi.SECBUFFER_TOKEN, token.pBuffers[0].BufferType);
        assertEquals(Sspi.MAX_TOKEN_SIZE, token.pBuffers[0].cbBuffer);
        assertEquals(token.getBytes().length, token.pBuffers[0].getBytes().length);
    }
View Full Code Here

            failAuthCleanup();
            throw new AuthenticationException("Authentication Failed");
        } else {
            try {
                final byte[] continueTokenBytes = Base64.decodeBase64(this.challenge);
                final SecBufferDesc continueTokenBuffer = new SecBufferDesc(
                        Sspi.SECBUFFER_TOKEN, continueTokenBytes);
                final String targetName = getServicePrincipalName(context);
                response = getToken(this.sspiContext, continueTokenBuffer, targetName);
            } catch (RuntimeException ex) {
                failAuthCleanup();
View Full Code Here

    String getToken(
            final CtxtHandle continueCtx,
            final SecBufferDesc continueToken,
            final String targetName) {
        final IntByReference attr = new IntByReference();
        final SecBufferDesc token = new SecBufferDesc(
                Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);

        sspiContext = new CtxtHandle();
        final int rc = Secur32.INSTANCE.InitializeSecurityContext(clientCred,
                continueCtx, targetName, Sspi.ISC_REQ_CONNECTION | Sspi.ISC_REQ_DELEGATE, 0,
                Sspi.SECURITY_NATIVE_DREP, continueToken, 0, sspiContext, token,
                attr, null);
        switch (rc) {
            case WinError.SEC_I_CONTINUE_NEEDED:
                continueNeeded = true;
                break;
            case WinError.SEC_E_OK:
                dispose(); // Don't keep the context
                continueNeeded = false;
                break;
            default:
                dispose();
                throw new Win32Exception(rc);
        }
        return Base64.encodeBase64String(token.getBytes());
    }
View Full Code Here

            dispose();
            throw new AuthenticationException("Authentication Failed");
        } else {
            try {
                final byte[] continueTokenBytes = Base64.decodeBase64(this.challenge);
                final SecBufferDesc continueTokenBuffer = new SecBufferDesc(
                        Sspi.SECBUFFER_TOKEN, continueTokenBytes);
                response = getToken(this.sppicontext, continueTokenBuffer, "localhost");
            } catch (Throwable t) {
                dispose();
                throw new AuthenticationException("Authentication Failed", t);
View Full Code Here

    private String getToken(
            final CtxtHandle continueCtx,
            final SecBufferDesc continueToken,
            final String targetName) {
        final IntByReference attr = new IntByReference();
        final SecBufferDesc token = new SecBufferDesc(
                Sspi.SECBUFFER_TOKEN, Sspi.MAX_TOKEN_SIZE);

        sppicontext = new CtxtHandle();
        final int rc = Secur32.INSTANCE.InitializeSecurityContext(clientCred,
                continueCtx, targetName, Sspi.ISC_REQ_CONNECTION, 0,
                Sspi.SECURITY_NATIVE_DREP, continueToken, 0, sppicontext, token,
                attr, null);
        switch (rc) {
            case WinError.SEC_I_CONTINUE_NEEDED:
                continueNeeded = true;
                break;
            case WinError.SEC_E_OK:
                dispose(); // Don't keep the context
                continueNeeded = false;
                break;
            default:
                dispose();
                throw new Win32Exception(rc);
        }
        return Base64.encodeBase64String(token.getBytes());
    }
View Full Code Here

TOP

Related Classes of com.sun.jna.platform.win32.Sspi.SecBufferDesc

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.